Files
awg-dash/deploy/README.md
embeddevio 59c3ad4918 test(#21): тесты инвариантов compose, Make-цели стенда и обновлённый deploy/README
- tests/deploy/test_compose_manifests.py — 7 тестов на compose-инварианты
  (без Docker, только PyYAML) — готовы к включению в CI (#17);
- Makefile: dev-up/dev-up-stub/dev-down/dev-logs/dev-verify/dev-verify-stub/
  dev-reset/test-netns/test-netns-keep/test-netns-ci/test-manifests/lint-shell,
  переменные HOST_DIR, DASH_PORT, NETNS_ARGS; dev-up без docker падает с внятным
  сообщением, а не трейсбеком;
- deploy/README.md — таблица артефактов и быстрые команды стенда.

Refs #21
Refs #15
2026-10-21 23:50:01 +03:00

42 lines
2.5 KiB
Markdown

# deploy — сборка и развёртывание
| Артефакт | Назначение | Задача |
|---|---|---|
| `Dockerfile` | multi-stage: amneziawg-go + awg-tools → runtime alpine | #18 |
| `entrypoint.sh` | супервизор: `awg-agent` (root) + `awg-api` | #18 |
| `docker-compose.dev.yml` | dev-стенд: порт 8080, тома `/config` `/data`, healthcheck | #21 |
| `docker-compose.test.yml` | стенд для тестов | #21 |
| `docker-compose.stub.yml` | DEV-ONLY оверрайд: health-заглушка до мержа #31 | #21 |
| `api_stub.py` | минимальный `/api/v1/health` для проверки плумбинга стенда | #21 |
| `verify-dev-stand.sh` | проверка AC #21 на Docker-хосте (`make dev-verify`) | #21 |
| `dev-stand.md` | runbook dev-стенда: запуск, AC, откат, pitfalls | #21 |
| `grafana/` | дашборд JSON (опциональный профиль monitoring) | #46 |
| `awg0.conf.example` | пример клиентского конфига | #22 |
Запуск по ТЗ (после релиза): `--network=host`, `--device=/dev/net/tun`, `--cap-add=NET_ADMIN --cap-add=SYS_MODULE`, `--restart always`.
## Dev-стенд (задача #21)
```bash
make dev-up # поднять стенд (compose project awg-dash-dev)
make dev-verify # AC: health 200 + /config /data переживают restart
make dev-up-stub # + health-заглушка, пока нет API (#31)
make dev-logs
make dev-down
```
* Состояние: `/opt/awg-dash-dev/{config,data}` на Docker-хосте (`AWG_DASH_HOST_DIR`).
* Хост-порт: `AWG_DASH_PORT` (по умолчанию 8180 — 8080 занят на dev-хосте; в контейнере всегда 8080).
* Подробности, таблица AC, откат и pitfalls — [dev-stand.md](dev-stand.md).
### Тестовый стенд без реального провайдера
```bash
make test-netns # netns-топология client/gw/uplink + мок WireGuard-endpoint
make test-netns-ci # то же в привилегированном контейнере (путь для CI, #17)
make test-manifests # статическая проверка compose-файлов (без Docker)
make lint-shell # shellcheck для скриптов стенда
```
Описание топологии, тестов и pitfalls — [../tests/netns/README.md](../tests/netns/README.md).