Files
netrunner-backend/.gitea/workflows/deploy-nginx.yml
T
nineap 51788f73ee
Build & Push Image / Build and push to GHCR (push) Failing after 15s
Build & Push Image / Build and push Caddy (Cloudflare DNS) image (push) Failing after 13s
CI / fmt + clippy + test (push) Failing after 21m30s
nginx+TLS перед бэкендом на прод VPS вместо голых портов наружу
Порт 8080 закрыт для всего интернета (ufw allow только с IP VPS данных —
нужен центральному Prometheus для /metrics), публичный вход только
account.netrunner-vpn.com через system nginx с настоящим Let's Encrypt
сертификатом. Тот же принцип, что и nginx у netrunner-data.
2026-07-10 19:07:10 +07:00

70 lines
2.8 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
name: Deploy Nginx
# Единственный публичный вход (443/80) на прод VPS (backend+лендинг вместе) —
# system nginx, тот же принцип, что и в netrunner-data. Только ручной запуск.
#
# Порядок первого запуска:
# 1. Запустить эту джобу (поднимет http-конфиг + сам nginx).
# 2. Один раз руками на сервере:
# sudo apt-get install -y certbot
# sudo certbot certonly --webroot -w /var/www/certbot \
# -d account.netrunner-vpn.com
# (если лендинг деплоится на этот же VPS первым — можно сразу одной
# командой на оба домена, см. deploy-nginx.yml у netrunner-landing)
# 3. Запустить эту джобу ещё раз — включит HTTPS.
on:
workflow_dispatch:
jobs:
deploy:
name: Deploy nginx config for account.netrunner-vpn.com
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Sync nginx configs to VPS
uses: appleboy/scp-action@v0.1.7
with:
host: ${{ vars.VPS_IP }}
username: root
key: ${{ secrets.SSH_PRIVATE_KEY }}
source: "nginx/account-http.conf,nginx/account-ssl.conf"
target: "/root/netrunner-core"
strip_components: 0
- name: Install/enable nginx via SSH
uses: appleboy/ssh-action@v1
with:
host: ${{ vars.VPS_IP }}
username: root
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
set -e
if ! command -v nginx >/dev/null 2>&1; then
apt-get update
apt-get install -y nginx
fi
mkdir -p /var/www/certbot
rm -f /etc/nginx/sites-enabled/default
cp /root/netrunner-core/nginx/account-http.conf /etc/nginx/sites-available/account-http.conf
cp /root/netrunner-core/nginx/account-ssl.conf /etc/nginx/sites-available/account-ssl.conf
ln -sf /etc/nginx/sites-available/account-http.conf /etc/nginx/sites-enabled/account-http.conf
CERT=/etc/letsencrypt/live/account.netrunner-vpn.com/fullchain.pem
if [ -f "$CERT" ]; then
ln -sf /etc/nginx/sites-available/account-ssl.conf /etc/nginx/sites-enabled/account-ssl.conf
echo "🔒 Сертификат найден — HTTPS-конфиг включён."
else
rm -f /etc/nginx/sites-enabled/account-ssl.conf
echo "⚠️ Сертификата ещё нет ($CERT) — HTTPS-конфиг НЕ включён."
fi
nginx -t
systemctl enable --now nginx
systemctl reload nginx
echo "✅ nginx (account.netrunner-vpn.com) synchronized."