181 lines
3.3 KiB
Markdown
181 lines
3.3 KiB
Markdown
# GeoSus Server - Docker Deployment
|
|
|
|
## Rychlý start
|
|
|
|
```bash
|
|
# Build image
|
|
docker build -t geosus-server .
|
|
|
|
# Spusť kontejner
|
|
docker run -d \
|
|
--name geosus \
|
|
-p 7777:7777 \
|
|
-p 8088:8088 \
|
|
-v geosus-data:/app/data \
|
|
geosus-server
|
|
```
|
|
|
|
## Docker Compose (doporučeno)
|
|
|
|
```bash
|
|
# Spuštění
|
|
docker-compose up -d
|
|
|
|
# Sledování logů
|
|
docker-compose logs -f
|
|
|
|
# Zastavení
|
|
docker-compose down
|
|
|
|
# Zastavení včetně smazání dat
|
|
docker-compose down -v
|
|
```
|
|
|
|
## Porty
|
|
|
|
| Port | Protokol | Popis |
|
|
|------|----------|-------|
|
|
| 7777 | TCP | Herní komunikace (binární protokol s šifrováním) |
|
|
| 8088 | HTTP | Stats REST API |
|
|
|
|
## Environment Variables
|
|
|
|
| Proměnná | Výchozí | Popis |
|
|
|----------|---------|-------|
|
|
| `GEOSUS_TCP_PORT` | 7777 | TCP port pro herní komunikaci |
|
|
| `GEOSUS_HTTP_PORT` | 8088 | HTTP port pro Stats API |
|
|
| `GEOSUS_DATA_PATH` | data | Cesta k datové složce |
|
|
| `GEOSUS_OVERPASS_URL` | https://mapz.honzuvkod.dev/api/interpreter | URL Overpass API pro mapová data |
|
|
| `GEOSUS_API_KEY` | (none) | API klíč pro Stats API (volitelné) |
|
|
| `DOTNET_ENVIRONMENT` | Production | Prostředí (.NET) |
|
|
|
|
## Volumes
|
|
|
|
- `/app/data` - Herní data (lobby, statistiky SQLite)
|
|
|
|
## Health Check
|
|
|
|
Server poskytuje health endpoint:
|
|
|
|
```bash
|
|
curl http://localhost:8088/health
|
|
```
|
|
|
|
Odpověď:
|
|
```json
|
|
{
|
|
"status": "ok",
|
|
"version": "1.0.0",
|
|
"uptimeSeconds": 3600,
|
|
"activeLobbies": 2,
|
|
"connectedPlayers": 15
|
|
}
|
|
```
|
|
|
|
## Vlastní konfigurace
|
|
|
|
Můžeš připojit vlastní `appsettings.json`:
|
|
|
|
```bash
|
|
docker run -d \
|
|
--name geosus \
|
|
-p 7777:7777 \
|
|
-p 8088:8088 \
|
|
-v geosus-data:/app/data \
|
|
-v ./my-settings.json:/app/appsettings.json:ro \
|
|
geosus-server
|
|
```
|
|
|
|
## Logování
|
|
|
|
```bash
|
|
# Živé logy
|
|
docker logs -f geosus
|
|
|
|
# Posledních 100 řádků
|
|
docker logs --tail 100 geosus
|
|
```
|
|
|
|
## Firewall
|
|
|
|
Nezapomeň otevřít porty na firewallu:
|
|
|
|
```bash
|
|
# UFW (Ubuntu)
|
|
sudo ufw allow 7777/tcp
|
|
sudo ufw allow 8088/tcp
|
|
|
|
# firewalld (CentOS/RHEL)
|
|
sudo firewall-cmd --permanent --add-port=7777/tcp
|
|
sudo firewall-cmd --permanent --add-port=8088/tcp
|
|
sudo firewall-cmd --reload
|
|
```
|
|
|
|
## Reverse Proxy (volitelné)
|
|
|
|
Pro HTTPS můžeš použít nginx jako reverse proxy:
|
|
|
|
```nginx
|
|
server {
|
|
listen 443 ssl;
|
|
server_name geosus.example.com;
|
|
|
|
ssl_certificate /path/to/cert.pem;
|
|
ssl_certificate_key /path/to/key.pem;
|
|
|
|
# Stats API
|
|
location /api/ {
|
|
proxy_pass http://localhost:8088/;
|
|
proxy_set_header Host $host;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
}
|
|
}
|
|
|
|
# TCP proxy pro herní komunikaci (stream modul)
|
|
stream {
|
|
server {
|
|
listen 7777;
|
|
proxy_pass localhost:7777;
|
|
}
|
|
}
|
|
```
|
|
|
|
## Aktualizace
|
|
|
|
```bash
|
|
# Stáhni nový kód
|
|
git pull
|
|
|
|
# Rebuild a restart
|
|
docker-compose down
|
|
docker-compose build --no-cache
|
|
docker-compose up -d
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### Port je obsazený
|
|
```bash
|
|
# Zjisti co používá port
|
|
sudo netstat -tlnp | grep 7777
|
|
sudo lsof -i :7777
|
|
```
|
|
|
|
### Kontejner padá
|
|
```bash
|
|
# Zkontroluj logy
|
|
docker logs geosus
|
|
|
|
# Interaktivní shell
|
|
docker run -it --rm geosus-server /bin/bash
|
|
```
|
|
|
|
### Problémy s daty
|
|
```bash
|
|
# Zkontroluj volume
|
|
docker volume inspect geosus-data
|
|
|
|
# Backup dat
|
|
docker cp geosus:/app/data ./backup
|
|
```
|