name: Deploy Observability # Отдельный от deploy.yml workflow — Prometheus/Loki/Grafana не должны # рестартовать вместе с Postgres/Vaultwarden (docker-compose.observability.yml # вместо docker-compose.yml, разные жизненные циклы). Деплоится на тот же # DATA_VPS_IP/DATA_SSH_PRIVATE_KEY, что и основной стек — тот же VPS. # # GRAFANA_PASSWORD — единственный настоящий секрет здесь, остальное (список # таргетов, конфиги Loki/promtail/Grafana-datasources) — публичный код # репозитория, не секреты. on: push: branches: [main] workflow_dispatch: jobs: deploy: name: Deploy Observability Stack runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 - name: Sync compose file + observability configs 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.observability.yml,observability" 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: "GRAFANA_PASSWORD" script: | set -e cd /root/netrunner-data # Свой .env.observability, НЕ общий .env (тот принадлежит # deploy.yml/docker-compose.yml и перезаписывается им целиком на # каждом своём прогоне — общий файл рассинхронизировал бы стеки). cat > .env.observability <