Установка Termidesk Connect Manager

Автоматизированная установка

Установка Termidesk Connect Manager выполняется через скрипт termidesk-cm.sh.

Скрипт находится в корне архива и продублирован в каталоге deploy/. Он предназначен для установки, обновления, удаления, создания резервной копии и восстановления системы управления в текущей Docker-архитектуре.

Использовать скрипт рекомендуется для пилотного стенда. Скрипт фиксирует последовательность запуска Docker-контейнеров, создает Docker-тома, устанавливает зависимости веб-интерфейса, собирает серверную часть, а также выполняет создание и восстановление резервных копий данных с помощью одной команды.

Требования для установки Termidesk Connect Manager:

  • Linux-сервер семейства Debian/Ubuntu или совместимый сервер с Docker;

  • права доступа root или sudo;

  • установленные пакеты: docker.io, unzip, curl (для ручной диагностики рекомендуется установка netcat и psql-клиента).

  • стабильный сетевой доступ к внешним репозиториям registry.npmjs.org и Docker Hub, если Docker-образы и npm-зависимости отсутствуют в локальном кэше.

Для проверки Docker выполнить команды:

apt update
apt install -y docker.io unzip curl
systemctl enable --now docker
docker ps

Распаковка архива

Пример команд для распаковки архива:

cd /home/ast
rm -rf TCM02
mkdir TCM02
cd TCM02
unzip /home/ast/termidesk-connect-manager-0.2.zip

Если после распаковки появилась вложенная папка, выполнить команду:

cd termidesk-connect-manager

Выполнить команду:

chmod +x ./termidesk-cm.sh

Настройка переменных окружения

При первом запуске скрипт создает файл /etc/termidesk-cm/termidesk-cm.env. Значения возможно подготовить заранее, чтобы явно указать IP-адрес Termidesk Connect Manager, порты и учетные данные PostgreSQL.

Пример команд для создания конфигурации:

mkdir -p /etc/termidesk-cm
cat > /etc/termidesk-cm/termidesk-cm.env <<'EOF'
TCM_MANAGER_IP=192.0.2.11
TCM_FRONTEND_PORT=5173
TCM_BACKEND_PORT=8000
TCM_SYSLOG_PORT=514
TCM_POSTGRES_DB=tcm
TCM_POSTGRES_USER=tcm
TCM_POSTGRES_PASSWORD=tcm
TCM_OPENBAO_TOKEN=tcm-root
TCM_DATABASE_URL=postgresql://tcm:tcm@tcm-postgres:5432/tcm
VITE_API_URL=http://192.0.2.11:8000
EOF
chmod 600 /etc/termidesk-cm/termidesk-cm.env

где:

  • TCM_MANAGER_IP – IP-адрес сервера Termidesk Connect Manager, доступный администраторам и устройствам Termidesk Connect;

  • TCM_FRONTEND_PORT– внешний порт веб-интерфейса (по умолчанию – 5173);

  • TCM_BACKEND_PORT – внешний порт API серверной части (по умолчанию – 8000);

  • TCM_SYSLOG_PORT – порт приема syslog (по умолчанию – 514 по протоколу TCP или UDP);

  • TCM_POSTGRES_DB, USER, PASSWORD – параметры PostgreSQL. Для промышленной эксплуатации (production) пароль необходимо заменить;

  • TCM_OPENBAO_TOKEN – Root-токен демо-версии (dev) OpenBao. Для промышленной эксплуатации (production) необходим отдельный безопасный режим OpenBao;

  • TCM_DATABASE_URL – Строка подключения серверной части к PostgreSQL;

  • VITE_API_URL – URL-адрес API серверной части, который использует веб-интерфейс.

Адреса (TCM_MANAGER_IP и VITE_API_URL) необходимо заменить на актуальные для использования в промышленном контуре.

Первоначальная установка

Для установки системы выполнить команду:

sudo ./termidesk-cm.sh install

После успешного выполнения команды должны быть запущены контейнеры tcm-postgres, tcm-openbao, tcm-backend и tcm-frontend. Скрипт отобразит сетевой адрес веб-интерфейса и Swagger.

Для проверки работоспособности выполнить команды:

sudo ./termidesk-cm.sh status
curl http://127.0.0.1:8000/health

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

Для установки системы с восстановлением из резервной копии выполнить команды:

sudo ./termidesk-cm.sh install --restore <путь_к_архиву>

Пример указания пути к архиву: /var/backups/termidesk-cm/termidesk-cm-backup-YYYYMMDD-HHMMSS.tar.gz.

Скрипт установит Termidesk Connect Manager, далее восстановит дампы PostgreSQL и содержимое Docker-тома tcm-data, после чего повторно запустит серверную часть и веб-интерфейс.

Примеры команд скрипта

Примеры команд скрипта представлены в таблице (см. таблицу Примеры команд скрипта).

Таблица 1. Примеры команд скрипта
Команда Описание

sudo ./termidesk-cm.sh install

Первоначальная установка или повторный запуск после подготовки окружения

sudo ./termidesk-cm.sh install --restore <backup.tar.gz>

Установка с восстановлением данных из резервной копии

sudo ./termidesk-cm.sh update

Обновление кода из текущего каталога, пересборка серверной части и перезапуск веб-интерфейса

sudo ./termidesk-cm.sh backup

Создание резервной копии PostgreSQL и tcm-data в папке /var/backups/termidesk-cm

sudo ./termidesk-cm.sh backup /path/file.tar.gz

Создание резервной копии в указанное место

sudo ./termidesk-cm.sh restore <backup.tar.gz>

Восстановление PostgreSQL и tcm-data из архива

После этого выполнить команды install или update

sudo ./termidesk-cm.sh remove

Удаление Docker-контейнеров без удаления Docker-томов и директории установки

sudo ./termidesk-cm.sh remove --purge

Полное удаление Docker-контейнеров, Docker-томов, Docker-сети и каталога установки

sudo ./termidesk-cm.sh status

Состояние Docker-контейнеров tcm-*

sudo ./termidesk-cm.sh logs backend

Просмотр логов серверной части. Также для просмотра доступны компоненты frontend, postgres, openbao

Ручная установка

Ручной способ установки используется в тех случаях, когда требуется контролировать каждый контейнер отдельно, адаптировать запуск под существующую инфраструктуру или отладить проблему установки.

Для установки необходимо выполнить шаги, представленные ниже.

Распаковка и подготовка

Пример команд для распаковки архива:

cd /home/ast
rm -rf TCM02
mkdir TCM02
cd TCM02
unzip /home/ast/termidesk-connect-manager-0.2.zip

Перейти в каталог, где находятся директории backend/ и frontend/. Для просмотра списка всех папок выполнить команду:

ls -la

Создание Docker-сети и Docker-томов

Для создания Docker-сети и Docker-томов выполнить команды:

docker network create tcm-net 2>/dev/null || true
docker volume create tcm-postgres
docker volume create tcm-data

Запуск PostgreSQL

Для запуска PostgreSQL выполнить команды:

docker rm -f tcm-postgres 2>/dev/null || true
docker run -d   --name tcm-postgres   --network tcm-net   --restart unless-stopped   -e POSTGRES_DB=tcm   -e POSTGRES_USER=tcm   -e POSTGRES_PASSWORD=tcm   -v tcm-postgres:/var/lib/postgresql/data   -p 5432:5432   postgres:16-alpine
docker exec -it tcm-postgres pg_isready -U tcm -d tcm

Запуск OpenBao

Для запуска OpenBao выполнить команды:

docker rm -f tcm-openbao 2>/dev/null || true
docker run -d   --name tcm-openbao   --network tcm-net   --restart unless-stopped   -e BAO_DEV_ROOT_TOKEN_ID=tcm-root   -e BAO_DEV_LISTEN_ADDRESS=0.0.0.0:8200   -p 8200:8200   openbao/openbao:latest   server -dev
curl http://127.0.0.1:8200/v1/sys/health

Сборка и запуск серверной части

Пример команд для сборки и запуска серверной части:

docker rm -f tcm-backend 2>/dev/null || true
docker build -t tcm-backend ./backend
docker run -d   --name tcm-backend   --network tcm-net   --restart unless-stopped   -e TCM_DATABASE_URL=postgresql://tcm:tcm@tcm-postgres:5432/tcm   -e TCM_DATA_PATH=/app/data   -e TCM_MANAGER_IP=192.0.2.11   -e TCM_SYSLOG_HOST=0.0.0.0   -e TCM_SYSLOG_PORT=514 -e TCM_MOCK_MODE=false   -v tcm-data:/app/data   -p 8000:8000   -p 514:514/tcp   -p 514:514/udp   tcm-backend
curl http://127.0.0.1:8000/health
docker logs --tail=100 tcm-backend
IP-адрес для TCM_MANAGER_IP необходимо заменить на актуальный для использования в промышленном контуре.

Подготовка и запуск веб-интерфейса

Пример команд для подготовки и запуска веб-интерфейса:

docker rm -f tcm-frontend 2>/dev/null || true
docker run --rm -it   -w /app   -v "$PWD/frontend:/app"   node:22-slim   sh -lc 'rm -rf node_modules package-lock.json && npm install --include=dev --no-audit --no-fund --registry=https://registry.npmjs.org'
docker run -d   --name tcm-frontend   --network tcm-net   --restart unless-stopped   -w /app   -e VITE_API_URL=http://192.0.2.11:8000   -v "$PWD/frontend:/app"   -p 5173:5173   node:22-slim   sh -c 'npm run dev -- --host 0.0.0.0 --port 5173'
curl -v http://127.0.0.1:5173
URL-адрес для VITE_API_URL необходимо заменить на актуальный для использования в промышленном контуре.

Первый вход в систему

Веб-интерфейс доступен по адресу http://<IP-адрес_системы>:5173. Swagger доступен по адресу http://<IP-адрес_системы>:8000/docs. Для новой базы данных используется учетная запись tdroot и tdadmin.

После первого входа в систему необходимо:

  • создать отдельного администратора;

  • при необходимости настроить LDAP и RADIUS;

  • заменить пароли по умолчанию PostgreSQL и OpenBao для стендов, которые выходят за рамки локального проекта.