Files
netrunner-landing/.gitea/workflows/deploy-nginx.yml
T
nineap bb77a76200
Build & Push Image / Build and push to Gitea Registry (push) Successful in 1m46s
Fix: nginx-конфиг для cms.netrunner-vpn.com + задвоенный /cms-api/api/api/ на проде
- cms.netrunner-vpn.com не имел своего vhost на новом проде после переезда
  CMS с французского сервера — падал 502 (уходил в чужой server_name).
  Добавлены cms-http.conf/cms-ssl.conf (Basic Auth + сертификат), deploy-nginx.yml
  теперь синкает и их.
- landing-ssl.conf: /cms-api/ проксировал в /api/ одним location, из-за чего
  запросы PocketBase SDK (уже содержащие /api/ после /cms-api/) задваивались
  в /api/api/... и 404-ились. Добавлен точный /cms-api/api/ location + общий
  fallback с rewrite — как было руками пропатчено на старом сервере, но не
  попало в репозиторий.
2026-07-11 02:26:39 +07:00

88 lines
4.0 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+лендинг вместе,
# см. deploy-nginx.yml у netrunner-backend — тот же сервер, свой домен).
# Только ручной запуск.
#
# Порядок первого запуска:
# 1. Запустить эту джобу (поднимет http-конфиг).
# 2. Один раз руками на сервере:
# sudo apt-get install -y certbot
# sudo certbot certonly --webroot -w /var/www/certbot \
# -d netrunner-vpn.com
# sudo certbot certonly --webroot -w /var/www/certbot \
# -d cms.netrunner-vpn.com
# sudo htpasswd -c /etc/nginx/.htpasswd <username> # спросит пароль
# 3. Запустить эту джобу ещё раз — включит HTTPS.
#
# cms.netrunner-vpn.com — прямой доступ к PocketBase (см. nginx/cms-ssl.conf),
# отдельно от /cms-api/ на основном домене, которым в рантайме пользуется сам
# лендинг.
on:
workflow_dispatch:
jobs:
deploy:
name: Deploy nginx config for 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/landing-http.conf,nginx/landing-ssl.conf,nginx/cms-http.conf,nginx/cms-ssl.conf"
target: "/root/netrunner-frontend"
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-frontend/nginx/landing-http.conf /etc/nginx/sites-available/landing-http.conf
cp /root/netrunner-frontend/nginx/landing-ssl.conf /etc/nginx/sites-available/landing-ssl.conf
cp /root/netrunner-frontend/nginx/cms-http.conf /etc/nginx/sites-available/cms-http.conf
cp /root/netrunner-frontend/nginx/cms-ssl.conf /etc/nginx/sites-available/cms-ssl.conf
ln -sf /etc/nginx/sites-available/landing-http.conf /etc/nginx/sites-enabled/landing-http.conf
ln -sf /etc/nginx/sites-available/cms-http.conf /etc/nginx/sites-enabled/cms-http.conf
CERT=/etc/letsencrypt/live/netrunner-vpn.com/fullchain.pem
if [ -f "$CERT" ]; then
ln -sf /etc/nginx/sites-available/landing-ssl.conf /etc/nginx/sites-enabled/landing-ssl.conf
echo "🔒 Сертификат (netrunner-vpn.com) найден — HTTPS-конфиг включён."
else
rm -f /etc/nginx/sites-enabled/landing-ssl.conf
echo "⚠️ Сертификата ещё нет ($CERT) — HTTPS-конфиг НЕ включён."
fi
CMS_CERT=/etc/letsencrypt/live/cms.netrunner-vpn.com/fullchain.pem
if [ -f "$CMS_CERT" ]; then
ln -sf /etc/nginx/sites-available/cms-ssl.conf /etc/nginx/sites-enabled/cms-ssl.conf
echo "🔒 Сертификат (cms.netrunner-vpn.com) найден — HTTPS-конфиг включён."
else
rm -f /etc/nginx/sites-enabled/cms-ssl.conf
echo "⚠️ Сертификата для cms.netrunner-vpn.com ещё нет ($CMS_CERT) — HTTPS-конфиг НЕ включён."
fi
nginx -t
systemctl enable --now nginx
systemctl reload nginx
echo "✅ nginx (netrunner-vpn.com + cms.netrunner-vpn.com) synchronized."