# EvoBGP

Control plane для управления префиксами, модулями ingest, ревизиями конфигурации BIRD и выкладкой на BGP-спикеры. Репозиторий включает HTTP API на Go, веб-интерфейс (`web/`), CLI для реплик (`evobgp-node`), агент и Docker Compose для локального и эталонного развёртывания.

## Документация

| Документ | Содержание |
|----------|------------|
| [AGENTS.md](AGENTS.md) | Краткая карта репозитория и советы для ИИ-агентов (экономия контекста) |
| [docs/README.md](docs/README.md) | Оглавление и навигация по разделам |
| [docs/overview.md](docs/overview.md) | Ключевые возможности продукта |
| [docs/quickstart.md](docs/quickstart.md) | Быстрый запуск (Docker, локально, фронтенд) |
| [docs/architecture.md](docs/architecture.md) | Архитектура компонентов и потоков данных |
| [docs/api.md](docs/api.md) | Как работать с REST API и OpenAPI |
| [docs/access.md](docs/access.md) | API-ключи, роли, нода, CORS, безопасность |

Контракт HTTP API: [docs/openapi.yaml](docs/openapi.yaml). Человекочитаемый просмотр: [docs/openapi.html](docs/openapi.html) (см. [docs/OPENAPI-GITEA.md](docs/OPENAPI-GITEA.md)).

## Быстрый старт (Docker)

Из каталога [deploy/compose](deploy/compose) (PowerShell):

```powershell
cd deploy\compose
Copy-Item .env.example .env -Force   # EVOBGP_REGISTRY=git.shts.su/<owner>
docker login git.shts.su
docker compose --profile microvps pull
docker compose --profile microvps up -d
```

Профиль **microvps** поднимает `evobgp-all`, PostgreSQL, BIRD2 и агент (образы из Container Registry, без `--build`). API по умолчанию: `http://localhost:8080`.

Эталонный стек (несколько сервисов, NATS, веб UI, Prometheus):

```powershell
docker compose --profile reference pull
docker compose --profile reference up -d
```

Подробности портов и переменных окружения — в [docs/quickstart.md](docs/quickstart.md) и в комментариях в [deploy/compose/docker-compose.yaml](deploy/compose/docker-compose.yaml).

## Разработка

- **Go:** модуль `evobgp`, точки входа в `cmd/`.
- **Веб:** SvelteKit в каталоге `web/` (см. [web/README.md](web/README.md)).

## Версионирование и релизы

Версии определяются автоматически из Conventional Commits при merge в `main` (semantic-release на Gitea Actions). Первая версия — **1.0.0**; ручной bump не нужен.

- [docs/releasing.md](docs/releasing.md) — пайплайн, commit conventions, секреты CI
- API: `GET /version` и `GET /v1/version` (поле `version`)
- Docker-образы: теги `latest`, `vX.Y.Z`, `X.Y.Z` — в **том же CI run**, что и релиз (job `release`)

Лицензия и условия использования — по политике владельца репозитория.
