This commit is contained in:
root
2026-04-26 12:44:06 +02:00
commit 9590629795
398 changed files with 26617 additions and 0 deletions

180
DOCKER.md Normal file
View File

@@ -0,0 +1,180 @@
# 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
```