3.3 KiB
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