diff --git a/.env.example b/.env.example index e66d833..84dc74f 100644 --- a/.env.example +++ b/.env.example @@ -46,6 +46,7 @@ ENABLE_WHITELIST=false # ===== RCON ===== RCON_PASSWORD=minecraft +RCON_PORT=25575 # ===== Timezone ===== TIMEZONE=Europe/Berlin diff --git a/CONSOLE.md b/CONSOLE.md new file mode 100644 index 0000000..addd934 --- /dev/null +++ b/CONSOLE.md @@ -0,0 +1,229 @@ +# Minecraft Server Console & Management + +## 🎮 Server Console Zugriff + +### Option 1: RCON über Terminal (empfohlen) + +**Über SSH auf dem Coolify Server:** +```bash +# Mit Container verbinden +docker exec -it minecraft-server rcon-cli + +# Dann kannst du Commands ausführen: +> list +> op Spielername +> whitelist add Spielername +> say Hallo Server! +> stop +``` + +**Vom eigenen PC aus (mit mcrcon):** +```bash +# Windows (mit mcrcon.exe) +mcrcon -H deine-server-ip -P 25575 -p minecraft + +# Linux/Mac +brew install mcrcon +mcrcon -H deine-server-ip -P 25575 -p minecraft +``` + +### Option 2: Web-Interface (mcrcon-web) + +Erstelle einen zusätzlichen Service in Coolify: + +**docker-compose-rcon.yml:** +```yaml +version: '3.8' + +services: + rcon-web: + image: itzg/rcon + container_name: minecraft-rcon-web + restart: unless-stopped + + environment: + - RWA_USERNAME=admin + - RWA_PASSWORD=dein-passwort + - RWA_RCON_HOST=minecraft-server + - RWA_RCON_PORT=25575 + - RWA_RCON_PASSWORD=minecraft + + ports: + - "4326:4326" + + networks: + - minecraft-network + +networks: + minecraft-network: + external: true + name: wcs4cg8k8w4owss40sg4s0cg_minecraft-network +``` + +Dann öffne: `http://deine-server-ip:4326` + +### Option 3: Coolify Logs (Nur Lesen) + +In Coolify: +1. Gehe zu deinem Service +2. Klicke auf **"Logs"** Tab +3. Siehst du alle Server-Ausgaben (aber keine Eingabe möglich) + +## 🔄 Nur Minecraft Server neustarten + +### In Coolify: + +1. Gehe zu deinem Service +2. Klicke auf **"Containers"** oder scrolle zu den Services +3. Finde `minecraft-server` +4. Klicke auf **"Restart"** nur für diesen Container + +### Via SSH auf Coolify Server: + +```bash +# Nur Minecraft Server neustarten +docker restart minecraft-server + +# Oder mit Container ID +docker ps # Finde die Container ID +docker restart +``` + +### Via RCON: + +```bash +# Verbinde via RCON +docker exec -it minecraft-server rcon-cli + +# Stoppe Server gracefully +> stop + +# Container startet automatisch neu (wegen restart: unless-stopped) +``` + +## 📝 Häufige RCON Commands + +```bash +# Spieler-Management +> list # Zeige Online-Spieler +> op Spielername # Mache zum Operator +> deop Spielername # Entferne Operator +> kick Spielername Grund # Kicke Spieler +> ban Spielername Grund # Banne Spieler +> pardon Spielername # Entbanne Spieler + +# Whitelist +> whitelist on # Aktiviere Whitelist +> whitelist add Spielername # Füge zur Whitelist hinzu +> whitelist remove Spielername # Entferne von Whitelist +> whitelist reload # Lade Whitelist neu + +# Server-Management +> stop # Stoppe Server +> save-all # Speichere Welt +> say Nachricht # Sende Nachricht an alle +> tellraw @a {"text":"Test"} # JSON Nachricht + +# Welt-Management +> time set day # Setze auf Tag +> weather clear # Klares Wetter +> difficulty peaceful # Ändere Schwierigkeit +> gamerule keepInventory true # Behalte Inventar bei Tod + +# Performance +> tps # Zeige TPS (Paper/Spigot) +> timings paste # Performance Report (Paper) +``` + +## 🖥️ RCON Tools + +### Windows: +- **mcrcon**: https://github.com/Tiiffi/mcrcon/releases +- **Minecraft RCON Console**: https://github.com/iMasonite/Minecraft-RCON-Console + +### Linux/Mac: +```bash +# mcrcon +brew install mcrcon + +# rcon-cli (bereits im Container) +docker exec -it minecraft-server rcon-cli +``` + +### Web-basiert: +- **RCON Web Admin**: https://github.com/itzg/docker-rcon-web-admin +- **Pterodactyl Panel**: Vollständiges Server-Management Panel + +## 🔐 RCON Sicherheit + +⚠️ **Wichtig:** +1. Ändere `RCON_PASSWORD` in Coolify Environment Variables +2. Port 25575 sollte NICHT öffentlich erreichbar sein (nur intern) +3. Für externen Zugriff: VPN oder SSH Tunnel nutzen + +**SSH Tunnel für sicheren Remote-Zugriff:** +```bash +# SSH Tunnel erstellen +ssh -L 25575:localhost:25575 user@coolify-server + +# Dann lokal verbinden +mcrcon -H localhost -P 25575 -p minecraft +``` + +## 📊 Server Status überwachen + +```bash +# Container Status +docker ps | grep minecraft + +# Live Logs +docker logs -f minecraft-server + +# Ressourcen-Nutzung +docker stats minecraft-server + +# Health Check +docker inspect minecraft-server | grep Health +``` + +## 🎯 Schnell-Befehle + +```bash +# Server neustarten (nur Minecraft) +docker restart minecraft-server + +# Console öffnen +docker exec -it minecraft-server rcon-cli + +# Backup erstellen +docker exec minecraft-server rcon-cli save-all +docker run --rm -v minecraft-server-data:/data -v $(pwd):/backup alpine tar czf /backup/backup-$(date +%Y%m%d-%H%M%S).tar.gz -C /data . + +# Logs anzeigen (letzte 100 Zeilen) +docker logs --tail 100 minecraft-server + +# Logs in Echtzeit +docker logs -f minecraft-server +``` + +## 🔧 Troubleshooting + +**RCON funktioniert nicht:** +1. Prüfe ob `ENABLE_RCON=true` gesetzt ist +2. Prüfe `RCON_PASSWORD` in Environment Variables +3. Stelle sicher Port 25575 erreichbar ist +4. Check Logs: `docker logs minecraft-server | grep -i rcon` + +**Server reagiert nicht:** +```bash +# Force Restart +docker restart -t 30 minecraft-server + +# Komplett neu starten +docker stop minecraft-server +docker start minecraft-server +``` + +--- + +**Tipp:** Installiere mcrcon auf deinem PC für einfachen Console-Zugriff von überall! 🚀 diff --git a/docker-compose.yaml b/docker-compose.yaml index 7bc83e2..8d818fd 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -48,6 +48,7 @@ services: # ===== RCON ===== ENABLE_RCON: "true" RCON_PASSWORD: ${RCON_PASSWORD:-minecraft} + RCON_PORT: 25575 # ===== TIMEZONE ===== TZ: ${TIMEZONE:-Europe/Berlin} @@ -57,6 +58,7 @@ services: ports: - "${MC_PORT:-25565}:25565" + - "${RCON_PORT:-25575}:25575" volumes: - minecraft-data:/data