Запустите сервер синхронизации сами.
Сервер синхронизации хранит запечатанные коробки, ведёт счётчик для каждого сейфа и проверяет подпись перед тем, как принять изменение. Он никогда не хранит ключ и никогда не видит имя, поэтому запуск своей копии почти ничего не стоит.
Выберите, где он работает и где хранятся объекты. Страница напишет конфигурацию, а вы вставите её туда, где она нужна.
Три места, где он может жить.
Один и тот же код обслуживает все три варианта. Cloudflare Worker требует от вас только аккаунт; бинарный файл или контейнер требуют машину, которая у вас уже есть. Что бы вы ни выбрали, ключи сейфа остаются на ваших устройствах.
Cloudflare Worker
Бесплатный тариф несёт небольшой сервер. Индекс — это база данных D1, а объекты идут в S3-совместимый бакет, поэтому для личного сейфа ничего не нужно поддерживать и ни за что платить.
Нативный бинарный файл
Один процесс на Linux, macOS или Windows. Он обслуживает обычный HTTP и ожидает перед собой proxy для HTTPS. Коробки в любом случае запечатаны и подписаны, поэтому обычный HTTP здесь не слабое место.
Контейнер
Тот же бинарный файл с теми же настройками, переданными как переменные окружения. Используйте его, когда машина уже запускает контейнеры и вы не хотите собирать из исходного кода.
Совсем без сервера
Синхронизация необязательна. Сейф может оставаться на одном устройстве с локальной резервной копией и никогда не касаться сети. Сервер можно добавить позже, не меняя ничего внутри сейфа.
Ответьте на четыре вопроса, скопируйте результат.
Настройки везде имеют одну форму: поле TOML или то же поле как переменная окружения. Worker принимает только S3-бакеты; бинарный файл и контейнер также пишут в обычные каталоги и в репозитории Git.
Скачайте и распакуйте ZIP для самостоятельного размещения. Компилятор Rust не нужен.
GitHub Releases · self-host ZIP
Конфигурация обновлена.
Перед развёртыванием создайте базу данных и бакет. Замените все заполнители.
Перед запуском создайте каталоги хранилища и замените все заполнители.
Не удалось скопировать. Выделите текст и скопируйте его вручную.
Не удалось скопировать. Выделите текст и скопируйте его вручную.
Секреты остаются в секретах Worker, никогда в файле. Worker пишет только в S3-совместимое хранилище.
Бинарный файл обслуживает обычный HTTP. Поставьте перед ним proxy, если машина доступна из интернета.
Контейнер слушает все интерфейсы внутри себя, поэтому опубликованный порт достигает его.
Выберите хотя бы одно место для запечатанных коробок. Без него сервер не запустится.
Значения в угловых скобках заполняете вы сами. Ничто из введённого здесь не покидает страницу: текст собирается в вашем браузере.
Направьте на него свои сейфы.
Новый сейф использует sync.confidex.me. Смена адреса — одна настройка в приложении, и сейф продолжает работать: адрес не входит в сейф и не входит в его идентичность.
- В приложении
- Откройте настройки сейфа и замените адрес сервера синхронизации на свой. Клиент сам добавит путь API.
- Общий домен
- Приложение и API могут жить на одном домене. Направьте префикс API на сервер, а всё остальное — на приложение.
- Аккаунты
- Нечего создавать. Сейф регистрируется сам, загружая свой подписанный замок, и заменить его может только владелец ключа подписи.
- Несколько серверов
- Сейф в любой момент общается с одним сервером. Переход на другой — та же единственная настройка.
Что должен делать владелец сервера.
Совсем немного, и ничего из этого не касается секретов. Сервер хранит запечатанные коробки и индекс, который на них указывает. Резервная копия — это копия того и другого.
Резервные копии
Копируйте индекс и хранилище объектов вместе. Объекты неизменяемы и именуются по своему дайджесту, поэтому копия, сделанная во время работы сервера, остаётся действительной.
Обновления
Замените бинарный файл или разверните Worker заново. Схема индекса применяется при запуске для нативного индекса и файлом схемы для D1.
Доступ
Учётные данные хранилища авторизуют сервер в его собственном хранилище. Они не имеют ничего общего с ключами сейфа и не могут открыть ни одной коробки.
Лицензия
Сервер распространяется под GNU AGPL-3.0. Изменения, которые вы запускаете для других, остаются открытыми; копия, которую вы запускаете для себя, не несёт никаких обязательств.