Skip to main content

Установка через Docker Compose

Способ по умолчанию. Установка полностью локальная: доступ в интернет и исходный код на сервере не требуются — все компоненты лежат в архиве поставки.

Все команды выполняются из распакованного каталога поставки.

1. Состав поставки

tetra-<версия>/
├── compose.yml конфигурация стека
├── .env.example шаблон настроек
├── README.md краткая версия этой инструкции
└── images/
├── tetra-backend-<версия>.tar сервер TETRA (панель SOC + приём событий)
└── postgres.tar СУБД PostgreSQL

Браузерное расширение в архив не входит: сервер скачивает его сам после активации лицензии — см. Раздача расширения.

2. Загрузить образы

docker load -i images/tetra-backend-<версия>.tar
docker load -i images/postgres.tar

3. Подготовить файл настроек

cp .env.example .env
chmod 600 .env

4. Сгенерировать секреты

openssl rand -hex 24 # -> POSTGRES_PASSWORD
openssl rand -hex 32 # -> TETRA_EVENTS_TOKEN
openssl rand -hex 32 # -> TETRA_SESSION_KEY
openssl rand -hex 32 # -> TETRA_CRX_SECRET_KEY

Впишите значения в .env. Ещё нужно указать TETRA_IMAGE_TAG — версию загруженного образа (она же в имени файла в images/). Остальные параметры менять не нужно, назначение каждого описано комментариями в самом файле; полный перечень — Параметры конфигурации.

Учётную запись для входа задавать не требуется: оператор tetra создаётся при первом запуске.

Два значения задаются один раз и больше не меняются
  • POSTGRES_PASSWORD — том с данными инициализируется этим паролем. Изменение после первого запуска приведёт к отказу подключения к базе.
  • TETRA_CRX_SECRET_KEY — им зашифрован ключ подписи расширения. Его потеря означает новый ID расширения и повторную раздачу расширения на все рабочие станции. Храните значение вместе с резервными копиями базы, но не внутри них.

5. Запустить

docker compose up -d

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

6. Проверить

docker compose ps # оба контейнера в состоянии running/healthy
docker compose logs backend # в конце — "starting"
curl -i http://127.0.0.1:8443/ # ожидается HTTP 200

Дальше — публикация по HTTPS и первый вход.

Вариант: собственный сервер PostgreSQL

Если в организации есть свой кластер PostgreSQL со своими регламентами резервного копирования и отказоустойчивости, встроенную СУБД можно не поднимать.

  1. Создайте базу и пользователя с правом создания таблиц в ней.

  2. В .env закомментируйте строку COMPOSE_PROFILES=embedded-db и укажите строку подключения:

    TETRA_DATABASE_URL=postgres://tetra:ПАРОЛЬ@postgres.example.local:5432/tetra?sslmode=require
  3. docker compose up -d — контейнер с базой не запустится, сервис подключится к вашему кластеру и создаст схему сам.

Поддерживается PostgreSQL 14 и выше.

Управление стеком

docker compose stop # остановить
docker compose start # запустить
docker compose ps # состояние контейнеров
docker compose logs -f --tail 100 backend

Логи пишутся в формате JSON, объём ограничен (5 файлов по 10 МБ на контейнер).

Дальше: обновление, резервное копирование.