Установка
Система "Графиня" разворачивается в docker-контейнерах при помощи плагина docker compose. В качестве СУБД используется MongoDB. Для скачивания docker-образов компонентов Графини необходимо воспользоваться учетной записью в репозитории Лаборатории Числитель.
После установки веб-интерфейс будет доступен по адресу http://ip , где ip – адрес сервера, на котором установлена "Графиня".
Данные для авторизации в веб-интерфейсе "Графини" по умолчанию: Логин: admin / Пароль: 123456
Предварительные требования
-
Установленный Docker и Docker Compose на вашей системе
-
Доступ к приватному реестру образов registry.pult.chislitellab.ru:8124 ( и registry.pult.chislitellab.ru:8126 для модуля РСМ)
-
Пользователь с правами на скачивание образов из реестра
Шаг 1: Подготовка окружения
-
Создайте рабочую директорию для проекта:
mkdir grafinya && cd grafinya -
Создайте файл
docker-compose.ymlс приведенным ниже содержимымservices:mongo:image: registry.pult.chislitellab.ru:8124/portal/database-app:2025H2env_file: .env_mongorestart: unless-stoppedports:- "27017:27017"volumes:- mongo-data:/data/dbnetworks:- grafinyafrontend:image: registry.pult.chislitellab.ru:8124/portal/frontend-app:2025H2restart: unless-stoppedenv_file: .env_frontendports:- "80:80"networks:- grafinyabackend:image: registry.pult.chislitellab.ru:8124/portal/backend-app:2025H2restart: unless-stoppedports:- "5000:5000"env_file: .env_backenddepends_on:- mongonetworks:- grafinyaprometheus-plugin:image: registry.pult.chislitellab.ru:8124/portal/plugins/prometheus:1.2.0restart: unless-stoppedports:- "8080:8080"networks:- grafinyapult-plugin:image: registry.pult.chislitellab.ru:8124/portal/plugins/pult:1.2.0restart: unless-stoppedports:- "8081:8080"networks:- grafinyacsv-plugin:image: registry.pult.chislitellab.ru:8124/portal/plugins/csv-plugin:1.2.0restart: unless-stoppedports:- "8082:8080"networks:- grafinyapostgres-plugin:image: registry.pult.chislitellab.ru:8124/portal/plugins/postgres-plugin:1.2.0restart: unless-stoppedports:- "8083:8080"networks:- grafinyarsm-module-api:image: registry.pult.chislitellab.ru:8126/portal/modules/rsm-module-api:1.2.0restart: unless-stoppedenvironment:FRONTEND_HOST: "http://<HOST_IP>:<RSM_MODULE_UI_EXT_PORT_8202>"ports:- "8102:8080"networks:- grafinyarsm-module-ui:image: registry.pult.chislitellab.ru:8126/portal/modules/rsm-module-ui:1.2.0restart: unless-stoppedenv_file: .env_backendports:- "8202:3000"networks:- grafinyavolumes:mongo-data:networks:grafinya:driver: bridge
Обязательно поменяйте http://<HOST_IP>:<RSM_MODULE_UI_EXT_PORT_8202> в docker-compose.yml на хост rsm-module-ui (по умолчанию совпадает с хостом ядра Графини) и порт rsm-module-ui
- Создайте необходимые
.envфайлы:
MONGO_INITDB_ROOT_USERNAME=<DB_LOGIN>
MONGO_INITDB_ROOT_PASSWORD=<DB_PASSWORD>
MONGO_INITDB_DATABASE=grafinya
Обязательно введите свои DB_LOGIN и DB_PASSWORD, иначе система не запустится корректно. Ниже пример заполнения:
MONGO_INITDB_ROOT_USERNAME= admin
MONGO_INITDB_ROOT_PASSWORD= 123456
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
Обязательно замените DB_LOGIN и DB_PASSWORD на свои реальные логин и пароль.
Если оставить примерные значения — подключение к базе не сработает. Ниже пример заполнения:
MONGO_URI=mongodb://admin:123456@mongo:27017/grafinya?authSource=admin
VITE_API_BASE_URL=http://<HOST>:5000/api/v1
Обязательно замените 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
Важные замечания
-
Для production-окружения рекомендуется изменить значения
JWT_SECRETиJWT_REFRESH_SECRETна более сложные. -
В переменной
ALLOWED_ORIGINможно указать origin фронтенда, чтобы ограничить доступ к API