Установка пакетом 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 продолжает работать.