v1.0.0
Made-with: Cursor
onGuard24
Версия: 1.0.0 · Модульный монолит на Python (FastAPI): ядро, приём алертов из Grafana, заготовки модулей (дежурства, контакты, светофор), PostgreSQL, проверки Vault / Grafana / Forgejo.
| Документ | Назначение |
|---|---|
| CHANGELOG.md | История версий |
| docs/VERSIONING.md | Теги, откат к предыдущей версии |
| docs/ARCHITECTURE.md | Структура кода, куда что класть |
| docs/AI_CONTEXT.md | Краткий контекст для доработок |
Репозиторий: forgejo.pvenode.ru/admin/onGuard24
Что уже есть (функционал v1)
- Запуск HTTP API (
uvicorn), конфиг из.env. - PostgreSQL: пул asyncpg, таблица
ingress_eventsдля сырых тел webhook Grafana. - POST
/api/v1/ingress/grafana— приём JSON алерта (опционально защитаX-OnGuard-Secret). - GET
/, GET/api/v1/status— проверки: БД, Vault, Grafana (service account), Forgejo (PAT). - Модули-заглушки:
/api/v1/modules/schedules|contacts|statusboard/. - Фронт (опционально):
web/— Vite + React, прокси на API.
Чего ещё нет (следующие версии): Alembic, авторизация API, доменная модель инцидентов, эскалации, фоновые задачи.
Быстрый старт
cd onGuard24
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e .
Скопируй .env.example в .env и заполни секреты (см. ниже).
python -m uvicorn onguard24.main:app --reload --host 0.0.0.0 --port 8080
Или: python -m onguard24.main (читает HTTP_ADDR из .env).
API
| Метод | Путь | Описание |
|---|---|---|
| GET | / |
HTML: проверки database / vault / grafana / forgejo |
| GET | /?format=json |
Тот же статус + ссылки в JSON |
| GET | /health, /api/v1/health |
Liveness |
| GET | /api/v1/status |
JSON: интеграции + БД |
| POST | /api/v1/ingress/grafana |
Webhook Grafana (JSON), опционально X-OnGuard-Secret |
| GET | /api/v1/modules/schedules/ |
Заглушка модуля дежурств |
| GET | /api/v1/modules/contacts/ |
Заглушка контактов |
| GET | /api/v1/modules/statusboard/ |
Заглушка «светофора» |
Переменные окружения
См. .env.example. Основные: DATABASE_URL, HTTP_ADDR, VAULT_*, GRAFANA_*, FORGEJO_*, опционально GRAFANA_WEBHOOK_SECRET.
Grafana
GRAFANA_URL,GRAFANA_SERVICE_ACCOUNT_TOKEN— HTTP API (service account), не пароль пользователя.
Forgejo (Gitea API)
FORGEJO_URL,FORGEJO_TOKEN— PAT; рекомендуется scoperead:userдля полного ответа/api/v1/user(см. README в предыдущих версиях иintegrations/forgejo_api.py).
Фронтенд (опционально)
cd web && npm install && npm run dev
Vite проксирует /api на http://127.0.0.1:8080 (см. web/vite.config.ts).
Description
Languages
Python
98.4%
TypeScript
0.8%
Mako
0.3%
Dockerfile
0.2%
HTML
0.1%