Kontrum On-Premise
Клиентское руководство, основанное на текущем пакете onprem/ и исходниках Windows Server проекта.
1. Системные требования
| Компонент | Linux | Windows Server |
|---|---|---|
| ОС | Linux x86-64 | Windows Server 2022/2025 x64 с WSL2 |
| CPU | 4 CPU | 4 ядра |
| RAM | 8 ГБ | 8 ГБ и больше |
| Диск | от 80 ГБ | от 40 ГБ, рекомендуется 80 ГБ |
| Контейнеры | Docker Engine + Compose v2 | Docker Engine внутри служебного WSL2, не Docker Desktop |
| База данных | PostgreSQL 16 из пакета Compose | PostgreSQL 16 внутри WSL2 |
Также требуются DNS-имя или VPN-имя, доверенный TLS-сертификат и исходящий HTTPS-доступ к api.kontrum.kz для регистрации и проверки лицензии.
2. Установка на Linux
- Получите официальный версионированный On-Premise пакет через Kontrum.
- Разместите пакет на сервере клиента под отдельной системной учётной записью.
- Выполните
./scripts/prepare.sh. - Создайте
.envиз.env.exampleи задайте уникальные значения. Не используйте примеры в production. - Получите одноразовый код регистрации сервера в личном кабинете.
- Выполните регистрацию:
python3 scripts/register.py --code 'KTR-SRV-EXAMPLE'. - Добавьте TLS-сертификат в
certs/fullchain.pemиcerts/privkey.pem. - Запустите
./scripts/install.sh. - Проверьте
./scripts/status.sh.
3. Windows Server
Поддерживаемая архитектура использует нативную Windows-службу и отдельный WSL2-контур, в котором работают Docker Engine, PostgreSQL и Kontrum Server. Это не установка через Docker Desktop.
- Подготовьте Windows Server 2022/2025 с аппаратной виртуализацией.
- Установите официальный signed package Kontrum Server.
- Укажите DNS, HTTPS port и server registration code.
- Дождитесь подготовки WSL2 и контейнеров.
- Добавьте доверенный TLS certificate и проверьте health.
4. Первый запуск и лицензия
- В личном кабинете активируйте локальное или выделенное размещение.
- Укажите REST URL, например
https://server.company.example:8443. - Укажите WSS URL:
wss://server.company.example:8443/api/v1/ws. - Зарегистрируйте сервер одноразовым кодом.
- Войдите в Kontrum и проверьте runtime endpoint.
- Убедитесь, что рабочие данные открываются напрямую с сервера клиента.
5. TLS, HTTPS и firewall
- Для браузерного клиента обязательны HTTPS и WSS; HTTP вызовет блокировку mixed content.
- По умолчанию gateway использует TCP 8443. Можно выбрать другой согласованный HTTPS-порт.
- Открывайте входящий порт только для нужных сетей или VPN.
- PostgreSQL нельзя публиковать в интернет.
- Сертификат должен быть доверенным на рабочих устройствах.
- Разрешите исходящий HTTPS к
api.kontrum.kz.
6. Резервные копии
Linux package содержит `./scripts/backup.sh`. Скрипт создаёт PostgreSQL backup; для production включите шифрование через получателя AGE и храните копии вне сервера.
./scripts/backup.sh- Проверяйте завершение backup по расписанию.
- Контролируйте свободное место и retention.
- Регулярно выполняйте restore rehearsal на отдельном контуре.
- До обновления создавайте дополнительную проверенную копию.
7. Обновление и rollback
- Запишите текущую версию и сделайте backup.
- Проверьте checksum нового официального package.
- Не перезаписывайте рабочий `.env` и TLS keys.
- Выполните source validation из package.
- Пересоберите server image и примените Compose update по release instructions.
- Проверьте migrations, health и вход пользователя.
Для rollback используйте сохранённый предыдущий package и backup, совместимый с его схемой. Не выполняйте destructive unregister WSL2 без проверенной резервной копии: это удалит PostgreSQL disk.
8. Monitoring и диагностика
- Проверяйте `docker compose ps` или `./scripts/status.sh`.
- Контролируйте health PostgreSQL, server и gateway.
- Следите за диском, backup age, TLS expiry и license check.
- При проблеме фиксируйте время, component status и безопасный log fragment.
- Не отправляйте `.env`, private keys, database password или registration token в поддержку.