name: Deploy # ВАЖНО: DATA_VPS_IP/DATA_SSH_PRIVATE_KEY должны указывать на ТОТ ЖЕ VPS, что # и прод netrunner-backend (тот же процесс Postgres, сеть netrunner_grid — # см. docker-compose.yml). Деплой backend'а должен быть выполнен на этом VPS # РАНЬШЕ первого запуска этого workflow — иначе `docker compose up` здесь # упадёт с "network netrunner_grid not found". # # Без сборки образов (postgres/vaultwarden — публичные образы, не наши). # Несекретные значения (DATA_VPS_IP, имя/юзер БД, домен/лог-левел/SMTP-хост-порт # Vaultwarden) — repo Variables (vars.*), не Actions secrets: видны так же, как # сам код, просто не маскируются в логах. Настоящие секреты (пароли/токены/ # приватный ключ) — только secrets.*. .env на сервере пересобирается с нуля на # каждом деплое (ничего не хранится в репозитории). on: push: branches: [main] workflow_dispatch: jobs: deploy: name: Deploy to Data VPS runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 - name: Sync compose file to VPS uses: appleboy/scp-action@v0.1.7 with: host: ${{ vars.DATA_VPS_IP }} username: root key: ${{ secrets.DATA_SSH_PRIVATE_KEY }} source: "docker-compose.yml" target: "/root/netrunner-data" strip_components: 0 - name: Write .env and deploy via SSH uses: appleboy/ssh-action@v1 with: host: ${{ vars.DATA_VPS_IP }} username: root key: ${{ secrets.DATA_SSH_PRIVATE_KEY }} envs: "VW_DB_USER,VW_DB_PASSWORD,VW_DB_NAME,VAULTWARDEN_DOMAIN,VAULTWARDEN_SIGNUPS_ALLOWED,VAULTWARDEN_ADMIN_TOKEN,VAULTWARDEN_LOG_LEVEL,SMTP_HOST,SMTP_FROM,SMTP_PORT,SMTP_SECURITY,SMTP_USERNAME,SMTP_PASSWORD" script: | set -e cd /root/netrunner-data mkdir -p data cat > .env <