Сервисы
Назначение файла
Этот документ описывает директорию config/services/, раскрывает назначение её подпапок и файлов, а также даёт пошаговую инструкцию по запуску и базовой настройке каждого вспомогательного сервиса внутри системы мониторинга.
1. Дерево каталогов
config/
└─ services/
├─ auth/ # Traefik Forward-Auth для SSO
├─ build_python_docker_image/ # базовый Python-образ для утилит
├─ consul/ # Consul — service discovery + KV
├─ consul-manager/ # UI для регистрации сервисов в Consul
├─ keycloak/ # Keycloak — Identity & Access Management
├─ mcdocs/ # MkDocs-Material — документация в браузере
├─ pgadmin/ # PgAdmin — UI для PostgreSQL
├─ portainer/ # Portainer — UI-панель для Docker
└─ traefik/ # Traefik — reverse-proxy + ACME
📂 Каждая папка содержит
docker-compose.ymlи пример.env_exampleс переменными окружения. Все сервисы разворачиваются независимо друг от друга, но подключаются к общей сетиmonitoring_net.
2. Обзор сервисов
| Каталог | Compose-файл | Контейнер(ы) | Назначение |
|---|---|---|---|
auth |
docker-compose.yml |
monitoring-forward-auth |
OAuth2 Forward-Auth для Traefik (SSO через Keycloak) |
build_python_docker_image |
docker-compose-build.yml |
monitoring_python_base |
Сборка базового Python-образа со всеми библиотеками проекта |
consul |
deployment/docker/docker-compose.yaml |
consul-server |
Service discovery, health-checks, KV-store |
consul-manager |
deployment/docker/docker-compose.yaml |
consul_manager |
Веб-UI (Streamlit) для ручной регистрации сервисов в Consul |
keycloak |
deployment/docker/docker-compose.yaml |
keycloak, keycloak-postgres |
Identity Provider, OIDC |
mcdocs |
docker-compose.yaml |
mkdocs |
Хостинг внутренней документации (docs/) |
pgadmin |
docker-compose.yml |
pgadmin |
Визуальный клиент PostgreSQL |
portainer |
deployment/docker/docker-compose.yml |
portainer |
Веб-UI для управления Docker-хостом |
traefik |
deployment/docker/docker-compose.yml |
traefik |
Reverse-proxy, TLS, middleware |
3. Типовой запуск сервиса
- Перейдите в каталог сервиса, например:
bash cd config/services/portainer/deployment/docker - Создайте файл
.envиз примера и заполните необходимые переменные:bash cp .env_example .env nano .env # или любой редактор - Убедитесь, что внешняя сеть
monitoring_netсуществует (создаётся один раз на всю систему):bash docker network create monitoring_net || true - Запустите контейнер(ы):
bash docker compose up -d - Откройте URL, указанный в переменной
*_HOST, чтобы проверить работу сервиса.
🔄 Для применения изменения конфигурации достаточно перезапустить только нужный сервис:
docker compose up -d <service_name>.
4. Документация по сервисам
Подробные инструкции по настройке и запуску каждого сервиса вынесены в отдельные документы:
- Auth — Traefik Forward-Auth
- Python Base Image
- Consul
- Consul-Manager
- Keycloak
- MkDocs
- PgAdmin
- Portainer
- Traefik
5. Быстрый чек-лист для админа перед выкладкой
- [ ]
.envзаполнен и не содержит секретов (секреты в CI Vault). - [ ] Сеть
monitoring_netсуществует. - [ ] Теги образов указаны явно (
${IMAGE_TAG}вместоlatest). - [ ] Traefik-labels корректно настраивают маршруты.
- [ ] Healthcheck-и проходят (
docker compose ps).
❤️ Обнаружили неточность? Пожалуйста, создайте Pull Request с правкой этого файла.