README.md

ГПН Мониторинг

First usage

Запуск с разворачиванием окружения с помощью docker.

Клонирование проекта:

git clone https://gitflic.ru/project/one/armonsys.git

Установка docker - https://docs.docker.com/engine/install/

В корне проекта необходимо создать файл .env со следующими переменными:

Обязательно:

  • DEBUG - включен ли режим Дебага для FastAPI
  • POSTGRES_USER - имя пользователя postgres
  • POSTGRES_PASSWORD - пароль для postgres
  • POSTGRES_HOST - хост для postgres
  • POSTGRES_PORT - порт для postgres
  • REDIS_HOST - хост для redis
  • REDIS_PORT - порт для redis
  • REDIS_PASSWORD - пароль для redis
  • JWT_SECRET_KEY - секретный ключ для шифрования JWT токенов
  • VITE_API - путь к апи (пример: http://127.0.0.1/api/v1/)
docker compose up -d --build

Разработка

Бэкенд

Для управления зависимостями используется pipenv. Если pipenv не установлен, установить:

  • MacOS: brew install pipenv,

  • Linux: sudo pip install pipenv,

  • Windows: pip install pipenv

Затем

  • pipenv install - Создание нового виртуального окружения и установка зависимостей для разработки.
  • pipenv run pre-commit install - установка pre-commit скриптов.

Запуск

Запуск локально через Docker:

docker compose up -d --build

Swagger будет доступен по адресу http://127.0.0.1/api/docs/

Админ Панель будет доступна по адресу http://127.0.0.1/api/admin/

Запуск тестов

docker compose -f docker-compose-tests.yml  run ams-tests-core pytest

Структура проекта

  • backend/src - рабочий каталог, содержит код сервера FastAPI и основной файл
    • main.py
  • .env - необходимо создать. Должен присутствовать в .gitignore! Содержит используемые для работы переменные (об этом ниже). Доступ к переменным из кода получаем с помощью os.enveron.get('var_name',default_value)
  • .env.template - Пример необходимых переменных.
  • .gitignore
  • gitlab-ci.yml - настройки ci/cd
  • .pre-commit-config.yml - настройка pre-commit (документация)
  • docker-compose.yml - конфигурация docker-compose для локального использования.
  • backend/Dockerfile - конфигурация контейнера для локального использования.
  • docker-compose-dev.yml - конфигурация docker-compose для использования на сервере разработки.
  • Pipfile - настройки pipenv, описание зависимостей и тд(заменяет файл requirements.txt).
  • Pipenv.lock - хранит версии используемых пакетов и их зависимостей
  • pyproject.toml - хранит настройки некотрых пакетов(pytest, coverage, commitizen)
  • README.md - этот файл

Переменные окружения

Также в корне проекта необходимо создать файл .env со следующими переменными:

Обязательно:

  • DEBUG - включен ли режим Дебага для FastAPI
  • POSTGRES_USER - имя пользователя postgres
  • POSTGRES_PASSWORD - пароль для postgres
  • POSTGRES_HOST - хост для postgres
  • POSTGRES_PORT - порт для postgres
  • REDIS_HOST - хост для redis
  • REDIS_PORT - порт для redis
  • REDIS_PASSWORD - пароль для redis
  • JWT_SECRET_KEY - секретный ключ для шифрования JWT токенов

Фронтенд

Основные используемые библиотеки

Библиотека Описание
React Библиотека для создания пользовательских интерфейсов
ConstaUI Библиотека интерфейсных компонентов
TanStack Query Библиотека для управления запросами данных
zustand Стейт менеджер

Запуск проекта

Переход в директорию проекта
    cd frontend
Создание файл .env
    touch .env

Добавить в .env файл переменную VITE_API, где VITE_API - адрес API, например:

    echo VITE_API=https://example.com/route/to/api > .env

Запуск проекта в Docker

Необходимое ПО
  • Docker
Сборка образа
    docker build -t monitoring-system-front .
Запуск контейнера
   docker run -dp 80:80 monitoring-system-front

Локальный запуск проекта или запуск для разработки

Необходимое ПО:
  • Node.js >=18.0.0 <19.0.0
  • yarn

Установка зависимостей

Необходимо убедиться, что версия node.js >=18.0.0 <19.0.0

    yarn install

Запуск проекта локально

    yarn build && yarn preview

Запуск проекта для разработки

    yarn dev

Прочие скрипты

Линтинг

    yarn lint
    yarn prettier

Переменные

Переменная Значение
VITE_API Эндпоинт бэкенда в формате http://example.com/route/to/api
Конвейеры
0 успешных
0 с ошибкой