Files
embeddevio b69c3b67e2
ci / lint (push) Successful in 52s
ci / lint (pull_request) Successful in 44s
contract-openapi / openapi-contract (push) Successful in 50s
contract-openapi / ts-client-is-current (push) Successful in 52s
contract-openapi / openapi-contract (pull_request) Failing after 13m2s
ci / unit (push) Has been cancelled
ci / security (push) Has been cancelled
ci / unit (pull_request) Has been cancelled
ci / security (pull_request) Has been cancelled
contract-openapi / ts-client-is-current (pull_request) Has been cancelled
ci / build (push) Has been cancelled
ci / image-scan (push) Has been cancelled
ci / push (push) Has been cancelled
ci / build (pull_request) Has been cancelled
ci / image-scan (pull_request) Has been cancelled
ci / push (pull_request) Has been cancelled
fix(#61): не оставлять pip в runtime-образе
trivy разбирает pip/_vendor/vendor.txt и репортит вендоренные msgpack 1.1.2 /
urllib3 2.7.0 / setuptools 70.3.0 как установленные пакеты — при том что в venv
реально стоят 1.2.4 / 2.8.0 / 84.2.1 (проверено pip list внутри образа staging-cc3621a1).
py3-pip переведён в .build-deps и удаляется вместе с ними; pip в venv и системный
pip вычищаются — runtime не должен содержать инсталлятора.

Refs #61
2026-10-29 22:41:58 +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.