Files
mcserver/README.md
SimolZimol 73c4985ac1 new file: .env.example
new file:   .gitignore
	new file:   README.md
	new file:   docker-compose.yml
2025-12-08 20:44:03 +01:00

496 lines
11 KiB
Markdown

# Minecraft Server Generator für Coolify
Web-basierter Generator für Minecraft Server mit Velocity-Netzwerk Integration und SFTP-Zugriff. Direkt in Coolify deploybar!
## 🎯 Features
-**Web-Interface** - Benutzerfreundliche Oberfläche zur Server-Erstellung
-**Automatische Generierung** - Download fertiger Docker Compose Konfigurationen
-**Velocity Integration** - Perfekt für Proxy-Netzwerke konfiguriert
-**SFTP Zugriff** - Einfache Plugin-Verwaltung über FileZilla/WinSCP
-**Persistent Volumes** - Daten bleiben bei Updates erhalten
-**Docker Compose Ready** - Direkt in Coolify nutzbar
-**Health Checks** - Automatische Überwachung
-**Performance Optimiert** - Aikar Flags und Best Practices
## 🚀 Schnellstart
### 1. Generator in Coolify deployen
#### Auf Gitea hochladen:
```bash
# Repository initialisieren
git init
git add .
git commit -m "Initial commit: Minecraft Server Generator"
# Auf Gitea pushen
git remote add origin https://dein-gitea-server/user/minecraft-generator.git
git push -u origin main
```
#### In Coolify importieren:
1. Gehe zu Coolify Dashboard
2. **New Resource****Docker Compose**
3. Verbinde dein Gitea Repository
4. Branch: `main`
5. **Deploy!**
Der Generator läuft dann auf Port 3000 und ist über deine Coolify-Domain erreichbar.
### 2. Minecraft Server erstellen
1. Öffne den Generator in deinem Browser
2. Fülle das Formular aus:
- Server Name (z.B. lobby, survival, minigames)
- Minecraft Version
- Server Software (Paper empfohlen)
- RAM Einstellungen
- Velocity Secret
- SFTP Zugangsdaten
3. Klicke auf **"Server-Dateien generieren"**
4. ZIP-Datei wird automatisch heruntergeladen
### 3. Server deployen
```bash
# ZIP entpacken
unzip minecraft-lobby.zip
# Neues Git Repo erstellen
cd minecraft-lobby
git init
git add .
git commit -m "Initial commit: Lobby Server"
# Auf Gitea pushen
git remote add origin https://dein-gitea-server/user/mc-lobby.git
git push -u origin main
```
Dann in Coolify:
1. **New Resource****Docker Compose**
2. Gitea Repository verbinden
3. **Deploy!**
## 📖 Voraussetzungen
- Coolify Installation
- Gitea oder anderer Git-Server
- Docker & Docker Compose (automatisch durch Coolify)
## 📁 Generierte Struktur
Nach dem Ausführen wird folgende Struktur erstellt:
```
[server-name]/
├── docker-compose.yml # Docker Compose Konfiguration
├── .coolify.yml # Coolify spezifische Config
├── config/ # Server Konfiguration
│ ├── paper-global.yml # Velocity Integration
│ ├── spigot.yml
│ └── server.properties
├── deploy.sh # Deployment Script
├── README.md # Server-spezifische Dokumentation
└── .gitignore
```
## 🌐 Velocity Netzwerk Setup
### 1. Backend Server (Lobby, Survival, etc.)
Jeder Backend-Server wird automatisch mit Velocity-Support konfiguriert:
```yaml
proxies:
velocity:
enabled: true
online-mode: false
secret: 'dein-secret'
```
### 2. Velocity Proxy Konfiguration
Füge deine Server zur `velocity.toml` hinzu:
```toml
[servers]
lobby = "server1.coolify:25565"
survival = "server2.coolify:25566"
minigames = "server3.coolify:25567"
try = [
"lobby"
]
[forced-hosts]
"lobby.deine-domain.de" = ["lobby"]
"survival.deine-domain.de" = ["survival"]
"minigames.deine-domain.de" = ["minigames"]
[player-info-forwarding]
mode = "modern"
secret = "dein-gemeinsames-secret"
```
## 📦 SFTP Plugin-Verwaltung
Jeder Server bekommt einen eigenen SFTP-Container für einfache Plugin-Verwaltung.
### Verbindung mit FileZilla
1. Öffne FileZilla
2. **Host:** `sftp://dein-server.de`
3. **Port:** Der konfigurierte SFTP Port (z.B. 2222)
4. **Benutzer:** Dein SFTP Username
5. **Passwort:** Dein SFTP Passwort
6. Verbinden!
### Verbindung mit WinSCP
1. Öffne WinSCP
2. Neuer Session
- Protokoll: SFTP
- Host: dein-server.de
- Port: SFTP Port
- Benutzername & Passwort
3. Anmelden!
### Ordnerstruktur über SFTP
```
/home/[username]/
├── plugins/ # Hier Plugins hochladen (.jar Dateien)
├── config/ # Konfigurationsdateien
└── data/ # Weltdaten (nur lesend)
```
### Plugins installieren
1. Verbinde dich via SFTP
2. Navigiere zu `/plugins`
3. Lade deine `.jar` Dateien hoch
4. Starte Server neu in Coolify oder via SSH:
```bash
docker-compose restart minecraft-[server-name]
```
## 🔧 Deployment in Coolify
### Option 1: Über Git Repository (Empfohlen)
```bash
# In deinem Server-Ordner
cd [server-name]
# Git initialisieren
git init
git add .
git commit -m "Initial commit: [server-name]"
# Zu deinem Repository pushen
git remote add origin https://github.com/dein-user/dein-repo.git
git push -u origin main
```
Dann in Coolify:
1. **New Resource** → **Docker Compose**
2. Git Repository verbinden
3. Branch auswählen (main)
4. Deploy!
### Option 2: Direkt auf Coolify Server
```bash
# Kopiere Ordner auf Coolify Server
scp -r [server-name] user@coolify-server:/pfad/
# SSH auf Server
ssh user@coolify-server
# Deploy
cd /pfad/[server-name]
./deploy.sh
```
## 🎮 Mehrere Server erstellen
Du kannst das Skript mehrmals ausführen für verschiedene Server:
```bash
# Lobby Server
./create-minecraft-server.sh
# Input: lobby, 1.21, Paper, 2GB-4GB, Port 25565, SFTP Port 2222
# Survival Server
./create-minecraft-server.sh
# Input: survival, 1.21, Paper, 4GB-8GB, Port 25566, SFTP Port 2223
# Minigames Server
./create-minecraft-server.sh
# Input: minigames, 1.20.4, Paper, 2GB-4GB, Port 25567, SFTP Port 2224
```
Jeder Server bekommt:
- Eigenen Docker Container
- Eigene Volumes (Daten persistent)
- Eigenen SFTP Zugang
- Eigenen Port
## 🛠️ Server Management
### Logs ansehen (in Coolify oder SSH)
```bash
# Alle Logs
docker-compose logs -f
# Nur Minecraft Server
docker-compose logs -f minecraft-[server-name]
# Nur SFTP Server
docker-compose logs -f sftp-[server-name]
```
### Server Console
```bash
# Interaktive Minecraft Console
docker exec -it mc-[server-name] rcon-cli
# Dann kannst du Commands ausführen:
> list
> op Username
> whitelist add Username
```
### Backup erstellen
```bash
# Erstelle Backup Ordner
mkdir -p backups
# Backup
docker run --rm \
-v mc-[server-name]-data:/data \
-v $(pwd)/backups:/backup \
alpine tar czf /backup/backup-$(date +%Y%m%d-%H%M%S).tar.gz -C /data .
```
### Server neustarten
```bash
docker-compose restart minecraft-[server-name]
```
### Server stoppen
```bash
docker-compose down
```
### Server starten
```bash
docker-compose up -d
```
## 🔒 Sicherheit Best Practices
### 1. Firewall Konfiguration
Nur Velocity Proxy sollte sich zu Backend-Servern verbinden können:
```bash
# Auf Backend-Server (z.B. mit ufw)
sudo ufw allow from [VELOCITY-PROXY-IP] to any port 25565
sudo ufw deny 25565 # Blockiere von allen anderen
```
### 2. Sichere Secrets verwenden
```bash
# Generiere sichere Secrets
openssl rand -base64 32
```
Nutze diesen Output für `forwarding-secret`.
### 3. SFTP Passwörter ändern
Nach dem ersten Setup, ändere SFTP Passwörter in der `docker-compose.yml`:
```yaml
command: ${SFTP_USER}:neues-sicheres-passwort:1000:1000:plugins,config,data
```
### 4. Regelmäßige Updates
```bash
# Docker Images updaten
docker-compose pull
docker-compose up -d
```
## 📊 Performance Tipps
### 1. Aikar Flags (bereits aktiviert)
Die optimalen JVM Flags sind bereits gesetzt via `USE_AIKAR_FLAGS: "true"`.
### 2. View Distance anpassen
In `server.properties` oder als Environment Variable:
```yaml
VIEW_DISTANCE: 8 # Reduzieren bei Lag
SIMULATION_DISTANCE: 6
```
### 3. Paper Timings
Auf dem Server:
```
/timings on
# Warte 10-15 Minuten
/timings paste
```
Analysiere die URL um Lag-Quellen zu finden.
### 4. Chunk-Loading optimieren
In `paper-world-defaults.yml`:
```yaml
chunks:
auto-save-interval: 6000 # 5 Minuten statt 1
```
## 🐛 Troubleshooting
### Problem: Server startet nicht
**Lösung:**
```bash
# Prüfe Logs
docker-compose logs minecraft-[server-name]
# Häufige Fehler:
# - Port bereits belegt → Ändere Port in docker-compose.yml
# - Zu wenig RAM → Erhöhe Memory Limits
# - EULA nicht akzeptiert → Sollte automatisch sein, prüfe EULA: "TRUE"
```
### Problem: Velocity Verbindung fehlgeschlagen
**Lösung:**
1. Prüfe ob Secret in Velocity und Paper identisch ist
2. Stelle sicher dass `online-mode=false` auf Backend-Server
3. Teste Netzwerk-Verbindung:
```bash
# Auf Velocity Server
telnet backend-server 25565
```
### Problem: SFTP Login funktioniert nicht
**Lösung:**
```bash
# Prüfe SFTP Container Status
docker-compose ps sftp-[server-name]
# Prüfe Logs
docker-compose logs sftp-[server-name]
# Teste Verbindung
sftp -P [SFTP-PORT] [USER]@[HOST]
```
### Problem: Plugins werden nicht geladen
**Lösung:**
1. Prüfe ob Plugin kompatibel mit Minecraft Version ist
2. Checke Server Logs nach Fehlern:
```bash
docker-compose logs minecraft-[server-name] | grep ERROR
```
3. Stelle sicher dass `.jar` Dateien im richtigen Ordner sind
4. Restart nach Plugin-Installation:
```bash
docker-compose restart minecraft-[server-name]
```
## 📚 Empfohlene Plugins
### Essentials
- **LuckPerms** - Permission Management
- **EssentialsX** - Core Commands
- **Vault** - Economy API
### Velocity Netzwerk
- **LiteBans** - Network-wide Bans
- **TAB** - Tablist & Scoreboard
- **AdvancedPortals** - Server Portale
- **ViaVersion** - Multi-Version Support
### Performance & Optimization
- **Chunky** - Pre-generate Chunks
- **FarmControl** - Optimize Farms
- **ClearLag** - Remove Entity Lag
### Fun & Features
- **Citizens** - NPCs
- **WorldEdit** - Building Tools
- **CoreProtect** - Rollback System
- **Geyser** - Bedrock Support (optional)
## 🔄 Update Prozess
### Server Software updaten
```bash
# In docker-compose.yml VERSION ändern
VERSION: "1.21.1"
# Neustart
docker-compose pull
docker-compose up -d
```
### Plugins updaten
1. Via SFTP zu `/plugins` verbinden
2. Alte `.jar` löschen
3. Neue `.jar` hochladen
4. Server neustarten
## 📞 Support & Community
- **Paper Docs:** https://docs.papermc.io/
- **Velocity Docs:** https://docs.papermc.io/velocity
- **Coolify Docs:** https://coolify.io/docs
## 📝 Changelog
### Version 1.0.0 (Initial Release)
- ✅ Automatische Server-Erstellung
- ✅ Velocity Integration
- ✅ SFTP Support
- ✅ Docker Compose Setup
- ✅ Coolify Kompatibilität
- ✅ Health Checks
- ✅ Persistent Volumes
## 🙏 Credits
Erstellt für einfaches Minecraft Server Management mit Coolify.
**Verwendete Docker Images:**
- `itzg/minecraft-server` - Minecraft Server
- `atmoz/sftp` - SFTP Server
---
**Made with ❤️ for the Minecraft Community**