Files
Server/DOCKER.md
2026-04-26 12:44:06 +02:00

3.3 KiB

GeoSus Server - Docker Deployment

Rychlý start

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

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

curl http://localhost:8088/health

Odpověď:

{
  "status": "ok",
  "version": "1.0.0",
  "uptimeSeconds": 3600,
  "activeLobbies": 2,
  "connectedPlayers": 15
}

Vlastní konfigurace

Můžeš připojit vlastní appsettings.json:

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í

# Živé logy
docker logs -f geosus

# Posledních 100 řádků
docker logs --tail 100 geosus

Firewall

Nezapomeň otevřít porty na firewallu:

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

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

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

# Zjisti co používá port
sudo netstat -tlnp | grep 7777
sudo lsof -i :7777

Kontejner padá

# Zkontroluj logy
docker logs geosus

# Interaktivní shell
docker run -it --rm geosus-server /bin/bash

Problémy s daty

# Zkontroluj volume
docker volume inspect geosus-data

# Backup dat
docker cp geosus:/app/data ./backup