Files

5.2 KiB
Raw Permalink Blame History

Telemt Panel — установка (RU)

Один Docker-образ: git.shts.su/denozord/telemtpanel. Режим задаётся PANEL_MODE.

Режим Когда Агент
standalone Telemt на том же хосте не нужен — панель ходит в Control API /v1 напрямую
fleet Несколько нод Go-агент на каждой ноде

UI: ReUI PRO Frame. Previews: app-shell-12, auth-4, stats-12. Docs: frame, blocks.

Требования

  • Docker 24+
  • Telemt с включённым Control API ([server.api]) для standalone
  • Открытый порт панели (8080) или Traefik

Обязательные переменные (production)

Переменная Требование
JWT_SECRET Обязателен. ≥ 8 символов. Без него контейнер не стартует. Пример: openssl rand -hex 32
BOOTSTRAP_PASSWORD Пароль первого admin (создаётся при пустой БД)
TELEMT_API_URL URL Telemt Control API в режиме standalone

Сохраните JWT_SECRET — смена секрета инвалидирует все сессии операторов.

Быстрый старт: standalone (рекомендуется на Linux)

docker pull git.shts.su/denozord/telemtpanel:latest

docker run -d --name telemt-panel --network host \
  -e PANEL_MODE=standalone \
  -e TELEMT_API_URL=http://127.0.0.1:9091 \
  -e JWT_SECRET="$(openssl rand -hex 32)" \
  -e BOOTSTRAP_USERNAME=admin \
  -e BOOTSTRAP_PASSWORD='change-me' \
  -v /var/lib/telemt-panel:/data \
  git.shts.su/denozord/telemtpanel:latest

Откройте http://127.0.0.1:8080, войдите admin / пароль из BOOTSTRAP_PASSWORD.

Compose:

cp .env.example .env   # заполните JWT_SECRET и BOOTSTRAP_PASSWORD
docker compose up -d

Три сетевых рецепта (standalone)

  1. network_mode: host (Linux, prod) — контейнер видит 127.0.0.1 хоста, где слушает Telemt.
  2. Sidecar — Telemt и панель в одном compose-network; TELEMT_API_URL=http://telemt:9091.
  3. Docker Desktopextra_hosts: host.docker.internal:host-gateway, TELEMT_API_URL=http://host.docker.internal:9091. В whitelist Telemt разрешите IP контейнера или lab-only 0.0.0.0/0.

Fleet

docker compose -f docker-compose.fleet.yml up -d

Обязательно:

  • PANEL_MODE=fleet
  • PANEL_PUBLIC_URL — публичный URL панели (для enroll / install script)
  • PANEL_ENCRYPTION_KEY, JWT_SECRET

В UI: Серверы → создать enrollment-токен → на ноде:

curl -fsSL https://panel.example.com/install-agent.sh | sudo bash -s -- \
  --panel-url https://panel.example.com \
  --token <TOKEN> \
  --telemt-url http://127.0.0.1:9091

Бинарник агента: соберите apps/agent (go build -o telemt-panel-agent .) и положите в /usr/local/bin/telemt-panel-agent, либо опубликуйте в releases.

Traefik (prod)

См. deploy/docker-compose.traefik.yml и deploy/env.traefik.example. Каталог на сервере: /opt/telemt-panel.

Переменные окружения

Переменная Описание
PANEL_MODE standalone | fleet
TELEMT_API_URL Base URL Control API (standalone), напр. http://127.0.0.1:9091
TELEMT_AUTH_HEADER Опциональный Authorization к Telemt
JWT_SECRET Обязателен в production. Секрет подписи JWT операторов, минимум 8 символов. openssl rand -hex 32
BOOTSTRAP_USERNAME / BOOTSTRAP_PASSWORD Первый admin при пустой БД (BOOTSTRAP_PASSWORD рекомендуется задать при первом запуске)
PANEL_PUBLIC_URL Публичный URL (fleet)
PANEL_ENCRYPTION_KEY Ключ для чувствительных данных (обязателен в fleet)
DATABASE_URL По умолчанию sqlite:/data/app.db
SERVER_PORT По умолчанию 8080

Bootstrap без env (после старта):

docker exec -it telemt-panel node -e "console.log('use BOOTSTRAP_PASSWORD on first boot')"
# или локально: pnpm bootstrap-admin -- --username admin --password '...'

Telemt [server.api]

Включите Control API и whitelist IP панели. Документация API: Telemt Control API. Локальные заметки: docs/telemt-control-api.md.

Health

  • GET /health — панель + SQLite
  • GET /ready — в standalone также ping Telemt /v1/health

Скрипт установщика

chmod +x deploy/install.sh
./deploy/install.sh --mode standalone