Files
egorin/docs/DEPLOY.md
T

57 lines
3.3 KiB
Markdown
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.
# Развёртывание Егорин на 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](deploy/servaki-monitor-api.service)).
- nginx-vhost: SPA + proxy `/api/`,`/socket` → 4100
(см. [deploy/egorin.r.servaki.online.conf](deploy/egorin.r.servaki.online.conf)).
- `.env` бэкенда → `/opt/egorin-api/.env` (см. [deploy/egorin.env.example](deploy/egorin.env.example);
**секрет Яндекс — только на сервере, не в git**).
## Шаги (проверено, SSH из песочницы к gate работает по id_rsa0404)
```bash
# 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` → сессия.
## Проверка
```bash
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 (реле «Ворота» цело)
```