Перейти к основному содержимому
Версия: Графиня 2025H2

Установка

Система "Графиня" разворачивается в docker-контейнерах при помощи плагина docker compose. В качестве СУБД используется MongoDB. Для скачивания docker-образов компонентов Графини необходимо воспользоваться учетной записью в репозитории Лаборатории Числитель.

После установки веб-интерфейс будет доступен по адресу http://ip , где ip – адрес сервера, на котором установлена "Графиня".

Данные для авторизации в веб-интерфейсе "Графини" по умолчанию: Логин: admin / Пароль: 123456

Предварительные требования

  1. Установленный Docker и Docker Compose на вашей системе

  2. Доступ к приватному реестру образов  registry.pult.chislitellab.ru:8124 ( и registry.pult.chislitellab.ru:8126 для модуля РСМ)

  3. Пользователь с правами на скачивание образов из реестра

Шаг 1: Подготовка окружения

  1. Создайте рабочую директорию для проекта:

    mkdir grafinya && cd grafinya
  2. Создайте файл  docker-compose.yml  с приведенным ниже содержимым 

    services:
    mongo:
    image: registry.pult.chislitellab.ru:8124/portal/database-app:2025H2
    env_file: .env_mongo
    restart: unless-stopped
    ports:
    - "27017:27017"
    volumes:
    - mongo-data:/data/db
    networks:
    - grafinya

    frontend:
    image: registry.pult.chislitellab.ru:8124/portal/frontend-app:2025H2
    restart: unless-stopped
    env_file: .env_frontend
    ports:
    - "80:80"
    networks:
    - grafinya

    backend:
    image: registry.pult.chislitellab.ru:8124/portal/backend-app:2025H2
    restart: unless-stopped
    ports:
    - "5000:5000"
    env_file: .env_backend
    depends_on:
    - mongo
    networks:
    - grafinya

    prometheus-plugin:
    image: registry.pult.chislitellab.ru:8124/portal/plugins/prometheus:1.2.0
    restart: unless-stopped
    ports:
    - "8080:8080"
    networks:
    - grafinya

    pult-plugin:
    image: registry.pult.chislitellab.ru:8124/portal/plugins/pult:1.2.0
    restart: unless-stopped
    ports:
    - "8081:8080"
    networks:
    - grafinya

    csv-plugin:
    image: registry.pult.chislitellab.ru:8124/portal/plugins/csv-plugin:1.2.0
    restart: unless-stopped
    ports:
    - "8082:8080"
    networks:
    - grafinya

    postgres-plugin:
    image: registry.pult.chislitellab.ru:8124/portal/plugins/postgres-plugin:1.2.0
    restart: unless-stopped
    ports:
    - "8083:8080"
    networks:
    - grafinya

    rsm-module-api:
    image: registry.pult.chislitellab.ru:8126/portal/modules/rsm-module-api:1.2.0
    restart: unless-stopped
    environment:
    FRONTEND_HOST: "http://<HOST_IP>:<RSM_MODULE_UI_EXT_PORT_8202>"
    ports:
    - "8102:8080"
    networks:
    - grafinya

    rsm-module-ui:
    image: registry.pult.chislitellab.ru:8126/portal/modules/rsm-module-ui:1.2.0
    restart: unless-stopped
    env_file: .env_backend
    ports:
    - "8202:3000"
    networks:
    - grafinya

    volumes:
    mongo-data:

    networks:
    grafinya:
    driver: bridge
warning

Обязательно поменяйте http://<HOST_IP>:<RSM_MODULE_UI_EXT_PORT_8202> в docker-compose.yml на хост rsm-module-ui (по умолчанию совпадает с хостом ядра Графини) и порт rsm-module-ui

  1. Создайте необходимые  .env  файлы:
a. .env_mongo:
MONGO_INITDB_ROOT_USERNAME=<DB_LOGIN>
MONGO_INITDB_ROOT_PASSWORD=<DB_PASSWORD>
MONGO_INITDB_DATABASE=grafinya
warning

Обязательно введите свои DB_LOGIN и DB_PASSWORD, иначе система не запустится корректно. Ниже пример заполнения:

MONGO_INITDB_ROOT_USERNAME= admin
MONGO_INITDB_ROOT_PASSWORD= 123456

b. .env_backend:
MONGO_URI=mongodb://<DB_LOGIN>:<DB_PASSWORD>@mongo:27017/grafinya?authSource=admin
PORT=5000
JWT_SECRET=TEST
ALLOWED_ORIGIN=*
EXPIRES_TOKEN=24h
JWT_REFRESH_SECRET=RTEST
EXPIRES_REFRESH_TOKEN=7d
warning

Обязательно замените DB_LOGIN и DB_PASSWORD на свои реальные логин и пароль.
Если оставить примерные значения — подключение к базе не сработает. Ниже пример заполнения:

MONGO_URI=mongodb://admin:123456@mongo:27017/grafinya?authSource=admin

c. .env_frontend:
VITE_API_BASE_URL=http://<HOST>:5000/api/v1
warning

Обязательно замените VITE_API_BASE_URL на адрес backend API, который должен быть доступен из браузера пользователя:

VITE_API_BASE_URL=http://192.168.0.1:5000/api/v1

Параметры NGINX_HOST и NGINX_PORT необязательны и используются в случае особых сценариев (строгий домен, несколько сервисов на одном порту, дополнительные правила безопасности). Пример:

NGINX_PORT=80
NGINX_HOST=192.168.0.1

Шаг 2: Аутентификация в Docker Registry

Для установки Графини и модуля РСМ необходимо выполнить вход в приватные Docker-реестры:

docker login registry.pult.chislitellab.ru:8124
docker login registry.pult.chislitellab.ru:8126

Введите свои учетные данные при запросе.

Шаг 3: Запуск сервисов

Запустите сервисы с помощью Docker Compose:

docker compose up -d

Шаг 4: Проверка работы сервисов

После запуска проверьте, что все контейнеры работают:

docker compose ps

Должны быть активны следующие сервисы:

  • mongo
  • frontend
  • backend
  • prometheus-plugin
  • pult-plugin
  • csv-plugin
  • postgres-plugin
  • rsm-module-api
  • rsm-module-ui

Важные замечания

  1. Для production-окружения рекомендуется изменить значения  JWT_SECRET и  JWT_REFRESH_SECRET на более сложные.

  2. В переменной  ALLOWED_ORIGIN можно указать origin фронтенда, чтобы ограничить доступ к API