Перейти к основному содержимому

Установка пакетом deb/rpm (systemd)

Вариант для организаций, где Docker не используется. Команды выполняются с правами root.

Имена файлов ниже указаны шаблоном (tetra_*_linux_amd64.deb) — в каталоге релиза шаблон раскрывается в единственный файл, так что команды можно копировать как есть.

1. Состав архива

tar -xzf tetra_*_linux_amd64.tar.gz
cd tetra_*_linux_amd64
ФайлНазначение
install.shустановка одной командой (шаг 2)
uninstall.shполное удаление — см. Удаление
tetra_<версия>_linux_amd64.deb / .rpmпакеты для Debian, Ubuntu / RHEL, Alma, Rocky
tetra_<версия>_linux_amd64бинарь без пакета: ручная подмена, нестандартный дистрибутив
checksums.txtконтрольные суммы sha256

Сборка статическая, от версии glibc не зависит.

2. Установка одной командой

sudo ./install.sh

Скрипт проверяет контрольные суммы, ставит пакет по дистрибутиву, запускает сервис, генерирует events_token, session_key и crx_secret_key, проверяет отклик. Повторный запуск безопасен: заполняются только пустые значения.

События при этом хранятся в памяти

Пока не указан database_url, данные теряются при перезапуске сервиса. Для постоянного хранения выполните шаг 3.

3. Настройка

sudo systemctl start tetra # создаёт /etc/tetra/config.yaml с комментариями по полям
sudo nano /etc/tetra/config.yaml

Заполните:

  • database_url — подключение к PostgreSQL. Пусто = хранение в памяти.
  • events_token — токен аутентификации браузерных сенсоров (openssl rand -hex 32).
  • session_key — ключ подписи cookie панели (openssl rand -hex 32). Пусто = операторов разлогинивает при каждом перезапуске.
  • crx_secret_key — заполнять не нужно, сервис сгенерирует значение сам и впишет его в файл. Сохраните его: без него ключ подписи расширения не восстановить.

Учётная запись оператора создаётся автоматически. Адрес лицензионного сервера встроен в бинарь и не настраивается. Права 600 на файл сервис выставляет сам. Полный перечень полей — Параметры конфигурации.

sudo systemctl restart tetra
sudo systemctl enable tetra # автозапуск

/opt/tetra/tetra version # версия должна совпадать с версией пакета
systemctl status tetra
sudo journalctl -u tetra -n 50 # ошибки настройки и миграций

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

Установка по шагам (без install.sh)

Применяется при ручной установке или диагностике.

sha256sum -c checksums.txt
sudo apt-get install -y ./tetra_*_linux_amd64.deb # Debian, Ubuntu
sudo dnf install -y ./tetra_*_linux_amd64.rpm # RHEL, Alma, Rocky

Пакет создаёт пользователя tetra, каталог /etc/tetra и юнит systemd. На чистой установке сервис не запускается — сначала настройка (шаг 3).

Переменные окружения вместо файла

Альтернатива config.yaml — переменные окружения в /etc/tetra/tetra.env (образец рядом, с расширением .example).

Механизм один на установку

Если задана хотя бы одна переменная TETRA_*, файл config.yaml не создаётся и не читается. Смешивать два способа нельзя.

Миграции схемы базы

Применяются при старте сервиса. Сломанная миграция означает, что сервис не поднялся — причина будет в journalctl -u tetra -n 50.

Если схемой владеет DBA и накатывает её отдельно, поставьте migrate_on_start: false и выполняйте миграции командой:

sudo -u tetra /opt/tetra/tetra migrate

Переход с ранее выполненной ручной установки

Юнит из ручной установки в /etc/systemd/system/tetra.service имеет приоритет над пакетным (/lib/systemd/system/tetra.service), и правки юнита из релиза молча не применятся. Однократно, до первой установки пакета:

sudo rm /etc/systemd/system/tetra.service
sudo systemctl daemon-reload

Существующий /etc/tetra/tetra.env продолжает работать.