Files
egorin/docs/DEPLOY.md
T

3.3 KiB

Развёртывание Егорин на gate (egorin.r.servaki.online)

Узел gate = gate.servaki.online = 5.101.118.232 (Ubuntu 24.04, nginx 1.24, certbot). Выбран как чистый веб-узел: уже nginx+LE (панель «Ворота»), нет amnezia/xray/MTProxy — ничего не ломается. egorin — отдельный server_name, реле «Ворота» (gate.conf) не трогать.

Имя egorin.r.servaki.online (relay-зона .r.) — совпадает с redirect_uri в Яндекс ID.

Компоненты

  • Фронт (статика SPA) → /var/www/egorin.r.servaki.online.
  • Бэкенд-шлюз (Node) → /opt/egorin-api/server, порт 127.0.0.1:4100, systemd servaki-monitor-api (см. deploy/servaki-monitor-api.service).
  • nginx-vhost: SPA + proxy /api/,/socket → 4100 (см. deploy/egorin.r.servaki.online.conf).
  • .env бэкенда → /opt/egorin-api/.env (см. deploy/egorin.env.example; секрет Яндекс — только на сервере, не в git).

Шаги (проверено, SSH из песочницы к gate работает по id_rsa0404)

# 1. DNS (на ru1, это только API-вызов, ru1 не меняем)
/root/beget-api.sh setA egorin.r.servaki.online 5.101.118.232
# 2. Node 20 на gate
curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && apt-get install -y nodejs
# 3. Фронт
npm run build   # локально → dist/
scp -r dist/*  root@5.101.118.232:/var/www/egorin.r.servaki.online/
# 4. Бэкенд
scp -r server  root@5.101.118.232:/opt/egorin-api/
# на gate: cd /opt/egorin-api/server && npm install --omit=dev
#          cp .env → /opt/egorin-api/.env ; cp unit → /etc/systemd/system/
#          systemctl enable --now servaki-monitor-api
# 5. nginx + TLS
cp egorin.r.servaki.online.conf /etc/nginx/sites-available/ && ln -s … sites-enabled/
nginx -t && systemctl reload nginx
certbot --nginx -d egorin.r.servaki.online --redirect -m mpo-inform@yandex.ru --agree-tos -n

Обновление

  • Только фронт: npm run build → залить dist/ в /var/www/egorin.r.servaki.online/.
  • Бэкенд/демо-данные: залить server/src/* → /opt/egorin-api/server/src/ → systemctl restart servaki-monitor-api.

Яндекс ID (приложение «Железный монитор»)

  • YANDEX_CLIENT_ID=12f8169bc7f74571b53e90a2bafea786
  • YANDEX_REDIRECT=https://egorin.r.servaki.online/api/auth/yandex/callback (совпадает с зарегистрированным в oauth.yandex.ru — иначе mismatch).
  • YANDEX_ADMINS=mpo-inform@yandex.ru (роль admin).
  • Client secret — в /opt/egorin-api/.env на gate, НЕ в git.
  • Поток: /api/auth/yandex/start → oauth.yandex.ru → /api/auth/yandex/callback → сессия.

Проверка

curl -sI https://egorin.r.servaki.online/                        # 200 (фронт)
curl -sI https://egorin.r.servaki.online/api/auth/yandex/start   # 302 → oauth.yandex.ru
curl -sI https://gate.servaki.online/                            # 200 (реле «Ворота» цело)