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

Установка

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

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

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

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

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

  2. Доступ к приватному реестру образов  registry.pult.chislitellab.ru:8123

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

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

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

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

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

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

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

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

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

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

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

    volumes:
    mongo-data:

    networks:
    grafinya:
    driver: bridge
  3. Создайте необходимые  .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 login registry.pult.chislitellab.ru:8123

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

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

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

docker compose up -d

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

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

docker compose ps

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

  • mongo
  • frontend
  • backend
  • prometheus-plugin
  • pult-plugin
  • csv-plugin
  • postgres-plugin

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

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

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