Files
SHiNE-server/deploy/SETUP_SERVER_FROM_ZERO.md
T

114 lines
2.5 KiB
Markdown

# Настройка SHiNE-сервера с нуля
Инструкция описывает базовую подготовку существующего Linux/VPS-хоста под SHiNE server + UI. Привязка должна идти к домену, а не к IP.
## 1. DNS
Создать DNS-запись домена:
- production: `shineup.me` или `server2.shineup.me`;
- test/devnet: `t1.shineup.me` ... `t4.shineup.me`.
После смены физического сервера достаточно обновить DNS.
## 2. Пользователь и пакеты
```bash
sudo apt update
sudo apt install -y openjdk-17-jre-headless rsync caddy
sudo useradd -m -s /bin/bash player || true
```
## 3. Каталоги
Production:
```bash
mkdir -p /home/player/SHiNE/shine-server/data
mkdir -p /home/player/SHiNE/shine-server/logs
mkdir -p /home/player/SHiNE/shine-ui
```
Test/devnet:
```bash
mkdir -p /home/player/tX/server/data
mkdir -p /home/player/tX/server/logs
mkdir -p /home/player/tX/UI
```
## 4. application.properties
Каждый сервер должен иметь локальный внешний конфиг в рабочей директории сервиса.
Production пример:
```properties
server.port=7070
server.SHiNE.login=shineupme
db.path=data/shine.sqlite
server.ui.indexPath=/home/player/SHiNE/shine-ui/index.html
server.info.url=https://shineup.me
server.info.origin=production
solana.cluster=mainnet-beta
```
Test/devnet пример:
```properties
server.port=7102
server.SHiNE.login=server_t2
db.path=data/shine.sqlite
server.ui.indexPath=/home/player/t2/UI/index.html
server.info.url=https://t2.shineup.me
server.info.origin=devnet
solana.cluster=devnet
solana.rpcUrl=https://api.devnet.solana.com
```
## 5. Caddy
Минимальный site block:
```caddyfile
t2.shineup.me {
encode zstd gzip
@ws path /ws /ws/*
handle @ws {
reverse_proxy 127.0.0.1:7102
}
handle {
root * /home/player/t2/UI
try_files {path} /index.html
file_server
header -Etag
header {
Cache-Control "no-store, no-cache, must-revalidate, max-age=0"
Pragma "no-cache"
Expires "0"
}
}
}
```
Проверка:
```bash
sudo caddy validate --config /etc/caddy/Caddyfile
sudo systemctl restart caddy
curl -I https://t2.shineup.me
```
## 6. Первый deploy
Из репозитория:
```bash
bash deploy/scripts/test_t2_server.sh
bash deploy/scripts/test_t2_ui.sh
```
Для production перед этими командами обязательно обновить `deploy/backup/archive/`.