Локальная установка
Всё на одной машине
Типичная коробочная установка — одна виртуальная машина, на ней сервис, PostgreSQL и обратный прокси. Ниже — конфигурация, которую имеет смысл запросить у своей инфраструктуры, и то, из чего она складывается.
Какую конфигурацию просить
| Профиль | vCPU / память | Диски | Когда это ваш случай |
|---|---|---|---|
| Пилот | 2 / 4 ГБ | 30 ГБ система + 30 ГБ данные | Демо и первые команды, десятки людей, без нагрузки со стороны сборок |
| Типовой | 4 / 8 ГБ | 30 ГБ система + 100 ГБ данные | Рабочая установка отдела или компании: люди, сервисы и CI вместе |
| С запасом | 8 / 16 ГБ | 30 ГБ система + 200 ГБ данные | Сотни людей, интенсивная выдача секретов сборкам, долгое хранение журнала |
Из чего складывается эта цифра
Сам сервис почти ничего не занимает: на боевой машине 2 vCPU / 4 ГБ бинарь около 13,5 МБ, потребление памяти 12–17 МБ, старт процесса — единицы миллисекунд. Это доли процента машины, и запас нужен не ему.
- Операционная система — отечественные дистрибутивы сами рекомендуют порядка 4 ГБ памяти и 16 ГБ диска
- PostgreSQL — основной потребитель памяти, буферы обычно около четверти оперативной памяти машины
- Снятие резервной копии — полная логическая копия собирается в памяти процесса, поэтому память планируется с кратным запасом к объёму данных
- Место под копии — по умолчанию хранится четырнадцать последних; если копии уезжают во внутреннее S3-хранилище, локально достаточно двух-трёх
Раскладка на машине
# бинарь — только чтение для служебной учётной записи /usr/local/bin/wardhold # конфигурация: права 0600, владелец — служебная учётная запись /etc/wardhold/wardhold.env # данные: копии и предыдущая версия бинаря, отдельный том /var/lib/wardhold/backups /var/lib/wardhold/releases # сервис слушает петлю, наружу его выводит обратный прокси WARDHOLD_ADDR=127.0.0.1:8080
Резервные копии не стоит держать на том же томе, что базу: копия, потерянная вместе с базой, копией не была.
Что проверить до установки
Версия PostgreSQLработает
Схема использует возможности версии 13 и старше; наши прогоны идут на 16. База отдельная, пользователь отдельный, расширения не нужны.
Точное времяработает
Синхронизация часов обязательна: на них держатся одноразовые коды второго фактора и сроки жизни токенов и сессий.
Сеть наружуработает
Исходящий доступ сервису не нужен: ни проверок лицензии, ни телеметрии. Наружу он ходит только туда, куда вы сами его направите — почтовый релей, корпоративный вход, ваше хранилище копий.
Почтовый релейработает
Без него инстанс поднимется, но подтверждение адреса и сброс пароля работать не будут: регистрация закрывается, состояние видно в проверке готовности.
Мастер-ключработает
Хранится отдельно от базы и отдельно от копий. Потеря ключа равна потере значений — восстановить их не сможем и мы.
Снимки виртуальной машиныработает
Они не заменяют резервную копию продукта: без парольной фразы и мастер-ключа восстановление не собирается.
Операционные системы и обновления
| Что | Состояние | Комментарий |
|---|---|---|
| Linux amd64 и arm64 | работает | Статическая сборка без CGO: системных библиотек и рантайма не требует |
| Установка бинарём под systemd | работает | Основной способ поставки там, где контейнеры в контуре не разрешены |
| Docker Compose | работает | Образы переносятся во внутренний реестр заранее |
| Обновление заменой файла и рестартом | работает | Схему обновляет сам бинарь при старте |
| Стенды на Astra Linux SE и РЕД ОС | в плане | Технических препятствий нет, но формальные прогоны и подтверждение совместимости ещё впереди — до этого не заявляем |
| Обновление из внутреннего зеркала по расписанию | в плане | Проверка подписи, копия перед миграцией и откат при неудаче — в разработке, сегодня обновление ставится руками |
Нужна помощь с расчётом?
Напишите, сколько у вас людей, сервисов и сборок в сутки — предложим конфигурацию под ваш профиль и пришлём инструкцию по установке.