Server
This commit is contained in:
180
DOCKER.md
Normal file
180
DOCKER.md
Normal 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
|
||||
```
|
||||
Reference in New Issue
Block a user