Files
awg-dash/deploy
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
..

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)

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.

Тестовый стенд без реального провайдера

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.