Appearance
Инструкция по установке
⚠️ Данная инструкция описывает только развертывание XRM Director на сервере, где `Docker` и `Docker Compose` уже установлены и готовы к работе.
⚠️ Установка Docker на российские ОС описана отдельной инструкцией и в данный документ не входит.
Что будет развернуто
В составе поставки используются два контейнера:
backend— серверная часть XRM Director;frontend— веб-интерфейс XRM Director.
Используемые образы:
xrmtech/xrm-director-backend:beta_0.2.7xrmtech/xrm-director-frontend:beta_0.2.7Если для версии XRM Director 1.1.0 должны использоваться другие теги контейнерных образов, замените их в файле
docker-compose.ymlдо запуска.
Предварительные условия
Перед началом убедитесь, что:
- установлена РЕД ОС 8;
- пользователь имеет права
rootили может выполнять команды черезsudo; Dockerустановлен;Docker Composeустановлен;- сервер имеет доступ к реестру контейнерных образов;
- свободны порты
80/tcpи8001/tcp; - настроена сетевая связность с брокерами OpenUDS;
- подготовлены учетные данные администратора для подключения к брокерам OpenUDS.
- рекомендуется заранее проверить DNS, синхронизацию времени и доступность целевых брокеров OpenUDS.
Структура каталогов
Развертывание выполняется, например, в каталоге /opt/xrmd.
Итоговая структура:
/opt/xrmd/
├── docker-compose.yml
└── backend/
├── settings.py
├── logs/
├── plandata/
└── db/Шаг 1. Подготовка каталогов
Создайте рабочие каталоги и перейдите в директорию развертывания:
bash
sudo mkdir -p /opt/xrmd/backend/{logs,plandata,db}
sudo chown -R $USER:$USER /opt/xrmd
cd /opt/xrmdШаг 2. Подготовка файла settings.py
Создайте файл /opt/xrmd/backend/settings.py со следующим содержимым:
bash
from pydantic_settings import BaseSettings
class Settings(BaseSettings):
ADMIN_USER: str = "admin"
ADMIN_PASSWORD: str = "admin"
BROKER_CONN_TIMEOUT: int = 20 # Default timeout for broker connections
class Config:
env_file = ".env"
settings = Settings()или скопируйте и выполните команду — файл будет создан автоматически:
bash
cat > /opt/xrmd/backend/settings.py << 'EOF'
from pydantic_settings import BaseSettings
class Settings(BaseSettings):
ADMIN_USER: str = "admin"
ADMIN_PASSWORD: str = "admin"
BROKER_CONN_TIMEOUT: int = 20 # Default timeout for broker connections
class Config:
env_file = ".env"
settings = Settings()
EOFНазначение параметров
ADMIN_USER— логин администратора XRM Director;ADMIN_PASSWORD— пароль администратора XRM Director;
Шаг 3. Подготовка файла docker-compose.yml
Создайте файл /opt/xrmd/docker-compose.yml со следующим содержимым:
bash
services:
backend:
image: xrmtech/xrm-director-backend:beta_0.2.7
ports:
- "8001:8001"
volumes:
- ./backend/settings.py:/app/settings.py
- ./backend/logs:/app/logs
- ./backend/plandata:/app/plandata
- ./backend/db:/app/db
frontend:
image: xrmtech/xrm-director-frontend:beta_0.2.7
ports:
- "80:80"
networks:
default:
name: xrm-networkили скопируйте и выполните команду — файл будет создан автоматически:
bash
cat > /opt/xrmd/docker-compose.yml << 'EOF'
services:
backend:
image: xrmtech/xrm-director-backend:beta_0.2.7
ports:
- "8001:8001"
volumes:
- ./backend/settings.py:/app/settings.py
- ./backend/logs:/app/logs
- ./backend/plandata:/app/plandata
- ./backend/db:/app/db
frontend:
image: xrmtech/xrm-director-frontend:beta_0.2.7
ports:
- "80:80"
networks:
default:
name: xrm-network
EOFЧто делает данный файл
публикует веб-интерфейс на порту
80;публикует backend API на порту
8001;подключает постоянные каталоги с конфигурацией, журналами и данными;
создает сеть Docker
xrm-network.Если порт
8001не должен быть доступен извне, после уточнения схемы эксплуатации его можно ограничить правилами межсетевого экрана или убрать из публикации.
Шаг 4. Запуск XRM Director
Из каталога /opt/xrmd выполните команду:
bash
docker compose up -dПосле запуска будут выполнены:
- создание сети
xrm-network; - загрузка контейнерных образов;
- создание контейнеров
backendиfrontend; - запуск сервисов в фоновом режиме.
Проверьте состояние контейнеров:
bash
docker compose ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d2735dcd514a xrmtech/xrm-director-frontend:beta_0.2.7 "/docker-entrypoint.…" 6 days ago Up 24 seconds 0.0.0.0:80->80/tcp, [::]:80->80/tcp xrmd_install-frontend-1
d5add673f488 xrmtech/xrm-director-backend:beta_0.2.7 "uvicorn main:app --…" 6 days ago Up 24 seconds 0.0.0.0:8001->8001/tcp, [::]:8001->8001/tcp xrmd_install-backend-1Если контейнеры `frontend` и `backend` находятся в состоянии `Up`, это означает, что сервисы успешно запущены и доступны для дальнейшей настройки.
Проверка веб-интерфейса
Откройте в браузере:
http://<IP-адрес_или_FQDN_сервера>/Если в settings.py оставлены значения по умолчанию, используйте:
- логин:
admin - пароль:
admin
Управление сервисом
Остановка
bash
cd /opt/xrmd
docker compose downОстановка без удаления контейнеров
bash
docker compose stopПовторный запуск
bash
docker compose startПерезапуск
bash
docker compose restartОбновление
Перед обновлением рекомендуется сохранить резервную копию каталога /opt/xrmd/backend.
Типовой порядок обновления:
bash
cd /opt/xrmd
docker compose down
docker compose pull
docker compose up -dЕсли обновление требует смены тегов образов, сначала внесите изменения в docker-compose.yml.
После обновления проверьте:
- состояние контейнеров;
- журналы
backendиfrontend; - доступность веб-интерфейса;
- сохранность данных в каталогах
db,plandata,logs.
Резервное копирование
Для резервного копирования рекомендуется сохранять:
/opt/xrmd/docker-compose.yml;/opt/xrmd/backend/settings.py;/opt/xrmd/backend/db/;/opt/xrmd/backend/plandata/;- при необходимости
/opt/xrmd/backend/logs/.
Пример архивирования:
bash
sudo tar -czf /opt/xrmd-backup-$(date +%F).tar.gz /opt/xrmd