Confidex
Разделы

Запустите сервер синхронизации сами.

Сервер синхронизации хранит запечатанные коробки, ведёт счётчик для каждого сейфа и проверяет подпись перед тем, как принять изменение. Он никогда не хранит ключ и никогда не видит имя, поэтому запуск своей копии почти ничего не стоит.

Выберите, где он работает и где хранятся объекты. Страница напишет конфигурацию, а вы вставите её туда, где она нужна.

Три места, где он может жить.

Один и тот же код обслуживает все три варианта. 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-совместимое хранилище.

Значения в угловых скобках заполняете вы сами. Ничто из введённого здесь не покидает страницу: текст собирается в вашем браузере.

Направьте на него свои сейфы.

Новый сейф использует sync.confidex.me. Смена адреса — одна настройка в приложении, и сейф продолжает работать: адрес не входит в сейф и не входит в его идентичность.

В приложении
Откройте настройки сейфа и замените адрес сервера синхронизации на свой. Клиент сам добавит путь API.
Общий домен
Приложение и API могут жить на одном домене. Направьте префикс API на сервер, а всё остальное — на приложение.
Аккаунты
Нечего создавать. Сейф регистрируется сам, загружая свой подписанный замок, и заменить его может только владелец ключа подписи.
Несколько серверов
Сейф в любой момент общается с одним сервером. Переход на другой — та же единственная настройка.

Что должен делать владелец сервера.

Совсем немного, и ничего из этого не касается секретов. Сервер хранит запечатанные коробки и индекс, который на них указывает. Резервная копия — это копия того и другого.

Резервные копии

Копируйте индекс и хранилище объектов вместе. Объекты неизменяемы и именуются по своему дайджесту, поэтому копия, сделанная во время работы сервера, остаётся действительной.

Обновления

Замените бинарный файл или разверните Worker заново. Схема индекса применяется при запуске для нативного индекса и файлом схемы для D1.

Доступ

Учётные данные хранилища авторизуют сервер в его собственном хранилище. Они не имеют ничего общего с ключами сейфа и не могут открыть ни одной коробки.

Лицензия

Сервер распространяется под GNU AGPL-3.0. Изменения, которые вы запускаете для других, остаются открытыми; копия, которую вы запускаете для себя, не несёт никаких обязательств.

Сервер — самая неинтересная часть, и в этом суть.