Порты 3000/3001 закрыты для интернета (ufw allow только с IP VPS данных —
Prometheus). Публичный вход только netrunner-vpn.com через nginx: "/" на
сам лендинг, "/cms-api/" на PocketBase (со сменой префикса на "/api"),
"/api/" на proxy-ws (comments/speedtest, уже с этим префиксом внутри).
Тот же принцип, что и в netrunner-backend/netrunner-data — deploy-dev
пишет .env из vars.DEV_BOT_USERNAME перед docker compose up, руками на
сервере создавать больше не нужно. Прод по-прежнему без .env — все
значения там хардкожены в docker-compose.yml.
Копии .github/workflows/{build,deploy}.yml. Логин на ghcr.io — через
secrets.GHCR_TOKEN (настоящий GitHub PAT), не secrets.GITHUB_TOKEN —
автотокен Gitea валиден только для самого Gitea. Триггер workflow_run в
deploy.yml поддержан не во всех версиях Gitea Actions — см. комментарий
в файле.
Нужно завести в Gitea секрет GHCR_TOKEN (write:packages) + все остальные
секреты, что уже есть в GitHub Actions (отдельное хранилище).