Files
SHiNE-server/deploy/PRODUCTION_SERVERS.md

3.7 KiB

Production-серверы SHiNE

Production-контуров два. В документах и скриптах использовать домены, а не IP: физический VPS можно заменить без изменения deploy-логики.

Текущее фактическое состояние на 2026-07-28:

  • shineup.me и server2.shineup.me оба уже переведены на PostgreSQL 18.4;
  • оба production используют локальный Docker-контейнер shine-postgres;
  • оба production работают без SQLite;
  • оба production используют Helius mainnet RPC/WS для Solana users sync и runtime Solana RPC.

Основной production

  • Домен: shineup.me
  • SSH: player@shineup.me
  • Логин сервера SHiNE: shineupme
  • Базовый каталог: /home/player/SHiNE
  • Сервер: /home/player/SHiNE/shine-server/shine-server.jar
  • UI: /home/player/SHiNE/shine-ui
  • Данные: /home/player/SHiNE/shine-server/data/
  • Логи: /home/player/SHiNE/shine-server/logs/app.log
  • systemd service: shine-server.service
  • Caddy site: shineup.me
  • WebSocket: /ws -> 127.0.0.1:7070
  • Solana cluster: mainnet-beta
  • Solana RPC/WS: Helius mainnet
  • Runtime DB: PostgreSQL в Docker
  • PostgreSQL container: shine-postgres
  • PostgreSQL image: postgres:18
  • PostgreSQL engine version на 2026-07-28: 18.4
  • PostgreSQL data dir: /home/player/SHiNE/postgres
  • PostgreSQL app DB: shine_main_db
  • PostgreSQL app user: shine_main
  • Web push: отдельный production VAPID key для shineup.me
  • TURN для звонков: turn1.shineup.me, turn2.shineup.me
  • SQLite runtime больше не используется

Deploy:

bash deploy/scripts/production_shineupme_server.sh
bash deploy/scripts/production_shineupme_ui.sh

Второй production

  • Домен: server2.shineup.me
  • SSH: player@server2.shineup.me
  • Логин сервера SHiNE: server2shineupme
  • Базовый каталог: /home/player/SHiNE
  • Сервер: /home/player/SHiNE/shine-server/shine-server.jar
  • UI: /home/player/SHiNE/shine-ui
  • Данные: /home/player/SHiNE/shine-server/data/
  • Логи: /home/player/SHiNE/shine-server/logs/app.log
  • systemd service: shine-server.service
  • Caddy site: server2.shineup.me
  • WebSocket: /ws -> 127.0.0.1:7070
  • Solana cluster: mainnet-beta
  • Solana RPC/WS: Helius mainnet
  • Runtime DB: PostgreSQL в Docker
  • PostgreSQL container: shine-postgres
  • PostgreSQL image: postgres:18
  • PostgreSQL engine version на 2026-07-28: 18.4
  • PostgreSQL data dir: /home/player/SHiNE/postgres
  • PostgreSQL app DB: shine_server2_db
  • PostgreSQL app user: shine_server2
  • Web push: отдельный production VAPID key для server2.shineup.me
  • TURN для звонков: turn1.shineup.me, turn3.shineup.me
  • SQLite runtime больше не используется

Deploy:

bash deploy/scripts/production_server2_server.sh
bash deploy/scripts/production_server2_ui.sh

Обязательное правило backup

Перед любым production deploy нужно обновить локальный бэкап в deploy/backup/archive/.

Production wrappers проверяют наличие MANIFEST.txt в deploy/backup/archive/<date>/. Если свежий бэкап не скопирован, deploy должен быть остановлен.

Запрещено

  • Не использовать IP как основной target deploy.
  • Не возвращать старые deploy-алиасы с названием test2.
  • Не считать t2.shineup.me вторым production: это test/devnet.