3.3 KiB
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, systemdservaki-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=12f8169bc7f74571b53e90a2bafea786YANDEX_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 (реле «Ворота» цело)