3.6 KiB
3.6 KiB
Управление ИТ (ОМС) — система дистанционного обучения
Система дистанционного обучения с фиксацией прохождения обучения и результатов тестирования сотрудников.
Назначение
- Раздача контента обучения и тестирования (HTML).
- Фиксация ФИО сотрудника при старте обучения (экран входа).
- Сохранение результатов тестирования в PostgreSQL после прохождения теста.
Требования и зависимости
- Docker, Docker Compose
- PostgreSQL 15 (запускается в контейнере)
Установка и настройка
- Скопировать
.env.exampleв.envи задать пароль БД:cp .env.example .env # Отредактировать .env: POSTGRES_PASSWORD=... - Запуск:
cd /opt/lms-it-oms docker compose up -d - Курс доступен по адресу: http://localhost:8000/ (редирект на
/content/it_course_v2.html).
Конфигурация
Переменные в .env (файл не коммитится):
| Переменная | Описание | По умолчанию |
|---|---|---|
| POSTGRES_HOST | Хост БД | db |
| POSTGRES_PORT | Порт БД | 5432 |
| POSTGRES_DB | Имя БД | lms_it_oms |
| POSTGRES_USER | Пользователь БД | lms |
| POSTGRES_PASSWORD | Пароль БД | обязательно задать |
| CONTENT_PATH | Путь к каталогу content в контейнере | /content |
API
POST /api/start— регистрация начала обучения. Тело:{"fio": "ФИО"}. Ответ:{"participant_id": "...", "fio": "..."}.POST /api/complete— фиксация результата теста. Тело:{"participant_id": "...", "score": 20, "total_questions": 25, "percent": 80, "passed": true}.GET /api/health— проверка доступности API.
Структура проекта
/opt/lms-it-oms/
├── README.md
├── HISTORY.md
├── .env.example
├── docker-compose.yml
├── content/ # HTML курса
│ └── it_course_v2.html
└── backend/
├── Dockerfile
├── requirements.txt
└── app/
├── main.py # FastAPI, статика, API
├── config.py
├── database.py
├── models.py
└── schemas.py
Docker Compose
- app — FastAPI на порту 8000, раздаёт статику из
./contentи обрабатывает/api/*. - db — PostgreSQL 15, volume
lms_it_oms_dataдля данных.
Логирование
- Логи приложения:
docker compose logs -f app - Логи БД:
docker compose logs -f db - Ротация логов app: json-file, max-size 10m, max-file 3.
Резервное копирование
Volume lms-it-oms_lms_it_oms_data добавлен в /opt/gen7x/backup/include-volumes.txt. Бэкапить данные PostgreSQL по общему регламенту платформы.
Восстановление из бэкапа
Восстановить volume БД по инструкции платформы. После восстановления перезапустить: docker compose up -d.
История изменений
См. HISTORY.md.