Files
SHiNE-server/deploy/TEST_SERVERS.md

82 lines
3.9 KiB
Markdown
Raw Permalink 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.
# Test/devnet серверы SHiNE
Отдельный test/devnet стенд состоит из четырёх независимых SHiNE-инстансов:
- `t1.shineup.me`
- `t2.shineup.me`
- `t3.shineup.me`
- `t4.shineup.me`
Это не production. Все deploy-цели задаются через домены.
Текущее фактическое состояние на `2026-07-28`:
- все четыре тестовых контура `t1` / `t2` / `t3` / `t4` уже работают без `SQLite`;
- все четыре контура используют `PostgreSQL 18.4`;
- PostgreSQL на test-хосте общий для всех четырёх контуров и запущен в Docker-контейнере `shine-test-postgres`;
- все четыре контура используют один и тот же Helius devnet RPC/WS endpoint;
- во всех четырёх UI включён web push client-код и встроен один и тот же test `VAPID` public key.
## Общие параметры
- SSH: `player@tX.shineup.me`
- Solana cluster: `devnet`
- Solana RPC: `https://devnet.helius-rpc.com/?api-key=0614c894-52d8-4ddc-bbbc-0947ce5ec3a4`
- Solana WS: `wss://devnet.helius-rpc.com/?api-key=0614c894-52d8-4ddc-bbbc-0947ce5ec3a4`
- Caddy config: `/etc/caddy/Caddyfile`
- Общий PostgreSQL container: `shine-test-postgres`
- PostgreSQL image: `postgres:18`
- PostgreSQL engine version на `2026-07-28`: `18.4`
- Web push в UI: общий test `VAPID` public key `BOdoWZndZRaNe9kyUFsJ5-xEfFABXNKennAKg15Z7ycAwUIQ7yDV_sIWWYJCwJriN4g9oU-CyJPrn1U6lfxuDbI`
## Инстансы
| Домен | Логин сервера | Сервер | UI | Порт | systemd | PostgreSQL DB | PostgreSQL user |
|---|---|---|---|---|---|---|---|
| `t1.shineup.me` | `server_t1` | `/home/player/t1/server` | `/home/player/t1/UI` | `7101` | `shine-t1.service` | `shine_t1_db` | `shine_t1` |
| `t2.shineup.me` | `server_t2` | `/home/player/t2/server` | `/home/player/t2/UI` | `7102` | `shine-t2.service` | `shine_t2_db` | `shine_t2` |
| `t3.shineup.me` | `server_t3` | `/home/player/t3/server` | `/home/player/t3/UI` | `7103` | `shine-t3.service` | `shine_t3_db` | `shine_t3` |
| `t4.shineup.me` | `server_t4` | `/home/player/t4/server` | `/home/player/t4/UI` | `7104` | `shine-t4.service` | `shine_t4_db` | `shine_t4` |
## Deploy
```bash
bash deploy/scripts/test_t1_server.sh
bash deploy/scripts/test_t1_ui.sh
bash deploy/scripts/test_t2_server.sh
bash deploy/scripts/test_t2_ui.sh
bash deploy/scripts/test_t3_server.sh
bash deploy/scripts/test_t3_ui.sh
bash deploy/scripts/test_t4_server.sh
bash deploy/scripts/test_t4_ui.sh
```
## Проверка
```bash
curl -I https://t1.shineup.me
curl -I https://t2.shineup.me
curl -I https://t3.shineup.me
curl -I https://t4.shineup.me
```
На сервере:
```bash
sudo systemctl --no-pager --full status caddy shine-t1 shine-t2 shine-t3 shine-t4
sudo docker ps --format 'table {{.Names}}\t{{.Image}}\t{{.Status}}'
```
## Operational-нюанс
Общий Helius devnet endpoint тоже может начать ограничивать запросы, если несколько инстансов одновременно делают тяжёлый bootstrap. Если после деплоя какой-то инстанс не подтянул `sync_servers` или завис на startup sync, рестартовать сервисы по одному с паузой.
Отдельный нюанс по web push:
- у `t1`, `t2`, `t3`, `t4` в UI уже есть одинаковый встроенный `VAPID` public key;
- то есть `t3` и `t4` используют тот же web push клиентский код, что и `t1` / `t2`;
- если позже понадобится разделить push-ключи по тестовым контурам, это нужно делать отдельным UI deploy с новым `DEPLOY_WEBPUSH_VAPID_PUBLIC`.