Files
SHiNE-server/deploy/TEST_SERVERS.md

3.9 KiB
Raw Permalink Blame History

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 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

Проверка

curl -I https://t1.shineup.me
curl -I https://t2.shineup.me
curl -I https://t3.shineup.me
curl -I https://t4.shineup.me

На сервере:

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.