Skip to content

Инструкция по установке

⚠️ Данная инструкция описывает только развертывание XRM Director на сервере, где `Docker` и `Docker Compose` уже установлены и готовы к работе.

⚠️ Установка Docker на российские ОС описана отдельной инструкцией и в данный документ не входит.

Что будет развернуто

В составе поставки используются два контейнера:

  • backend — серверная часть XRM Director;
  • frontend — веб-интерфейс XRM Director.

Используемые образы:

  • xrmtech/xrm-director-backend:beta_0.2.7

  • xrmtech/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 -a
CONTAINER 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

XSYSTECH.RU