| .. | ||
| servers | ||
| agent-bot-coder-local-systemd.md | ||
| README.md | ||
Деплой SHiNE (шаблон)
Этот раздел хранит актуальные инструкции по деплою.
Базовый сервер
- SSH:
player@shineup.me - Домен:
shineup.me - Базовый путь:
/home/player
Для всех рабочих инструкций и скриптов использовать доменное имя shineup.me, а не фиксированный IP:
- актуальный IP должен браться через DNS-резолв на момент подключения;
- ручное дублирование IP в документации и deploy-скриптах не поддерживать.
Контуры деплоя
- Production:
- SSH:
player@shineup.me - Домен:
shineup.me - IP:
185.229.109.118
- SSH:
- Main test:
- SSH:
player@193.8.215.70 - Домен:
test2.shineup.me - IP:
193.8.215.70
- SSH:
- Reserve test:
- SSH:
player@93.170.12.154 - Домен:
test.shineup.me - IP:
93.170.12.154
- SSH:
Локальные команды
- Default server deploy:
./gradlew deployServerили./gradlew deployServerTest2 - Default UI deploy:
./gradlew deployUIили./gradlew deployUITest2 - Production server deploy:
./gradlew deployServerProduction - Production UI deploy:
./gradlew deployUIProduction - Reserve test server deploy:
./gradlew deployServerTest - Reserve test UI deploy:
./gradlew deployUITest - Локальный запуск:
./gradlew startLocal
Политика подтверждений
shineup.me— production.- Любые изменения на
shineup.me, включая deploy сервера, deploy UI, конфиги, перезапуски и миграции, делать только после отдельного явного подтверждения пользователя. - Если пользователь пишет просто
задеплойбез уточнения, по умолчанию это означает deploy наtest2.shineup.me.
Main test deploy (test2.shineup.me)
- Это основной сервер для тестов.
deployServerиdeployUIпо умолчанию направлены именно сюда.- Серверный deploy не запускает JUnit/IT-тесты на удалённом сервере.
deployServer/deployServerTest2делают:- сборку fat-jar локально;
- синхронизацию
data/иshine.sqliteс productionshineup.me; - перенос
application.propertiesс production с поправкойserver.ui.indexPathна/home/player/SHiNE/shine-ui/index.html; - установку
systemdunit на193.8.215.70; - перезапуск
shine-server.service; - установку/проверку Caddy для
test2.shineup.me.
deployUI/deployUITest2публикуют UI в/home/player/SHiNE/shine-uiна193.8.215.70.
Reserve test deploy (test.shineup.me)
test.shineup.meпока не использовать для обычного deploy.- Задачи
deployServerTestиdeployUITestсчитаются резервными и требуют отдельной причины.
UI-деплой и Caddy (обязательно)
- Целевая директория UI-деплоя:
/home/player/SHiNE/shine-ui. Caddyfileна сервере должен смотреть в ту же директорию черезroot * /home/player/SHiNE/shine-ui.- В
deploy_shine-PWA.shдобавлена проверка: скрипт ищет блокshineup.me { ... }(или значениеEXPECTED_CADDY_SITE) и проверяетrootвнутри этого блока. - Если
rootвнутри целевого блока не совпадает, деплой прерывается с ошибкой. - Для ручного обхода проверки (только осознанно):
ALLOW_CADDY_MISMATCH=1 ./gradlew deployUI. - При необходимости можно явно переопределить путь деплоя:
REMOTE_UI_DIR=/нужный/путь ./gradlew deployUIEXPECTED_CADDY_UI_ROOT=/нужный/путь ./gradlew deployUIEXPECTED_CADDY_SITE=example.com ./gradlew deployUI
Временные тестовые сайты Solana tickets
- Для HTML UI программы
shine_paymentsиспользуется отдельный временный тестовый сайт. - Основной каталог публикации:
/home/player/sites/test-solana-tickets.shineup.me
- Рабочие домены:
https://test-solana-tickets.shineup.mehttps://test-solana-tickets.shiningpeople.ru
- Назначение:
- ручная проверка сценариев покупки билетов;
- проверка DAO-инструментов и лимитов менеджеров;
- проверка ручного добавления билетов и
step_payout.
- Эти сайты не считать основным UI SHiNE; это отдельная тестовая публикация под Solana-часть.
Важно для локального UI (history-router / Ctrl+F5)
- Локальный UI обязательно поднимать только через
./gradlew startLocal. - Эта задача запускает
scripts/local_spa_server.py, который делает SPA fallback: любой неизвестный путь (/m/...,/channel/...) возвращаетindex.html. - Это обязательно для корректной работы
Ctrl+F5на внутренних роутов без404. - Рабочий URL выводится задачей в консоль в формате:
http://localhost:<WEB_PORT>/?localWsPort=<WS_PORT>.
Обязательные правила
- Перед серверным деплоем проверить локально.
- При нестандартном деплое (другой хост, другая структура, ручные шаги) обязательно уточнить у пользователя, нужно ли обновить этот шаблон.
- Если деплой-процесс изменился, этот файл и файлы в
servers/обновлять в том же коммите.