Inhaltsverzeichnis
-
🧟♂️ Der ultimative SCUM Server auf Linux (Docker + Wine)
- ✅ Voraussetzungen
- Schritt 1: Ordnerstruktur erstellen & Rechte setzen
- Schritt 2: Das Dockerfile (Das Herzstück)
- Schritt 3: Das Start-Skript (start-server.sh)
- Schritt 4: Die docker-compose.yml
- Schritt 5: Server starten & Firewall
- Schritt 6: Admin werden & Konfiguration
- Schritt 7: Automatischer Neustart & Updates (Cronjob)
- 🎉 Fertig!
- ⚠️ Wichtiger Haftungsausschluss (Disclaimer)
🧟♂️ Der ultimative SCUM Server auf Linux (Docker + Wine)
Dieses Setup nutzt Debian 12, Wine 10 (für Windows-Kompatibilität) und den Docker Host-Mode für maximale Performance und stabile Verbindungen ohne Port-Probleme.
✅ Voraussetzungen
- Ein Linux Server (vServer oder Root) mit mind. 4 CPU-Kernen und 8-16 GB RAM.
- Docker & Docker Compose installiert.
- Ein FTP-Programm (z.B. WinSCP).
- Putty Für die ssh Verbindung
Schritt 1: Ordnerstruktur erstellen & Rechte setzen
Wir erstellen einen Ordner, in dem alles liegt. Wichtig: Wir geben dem Daten-Ordner volle Rechte, damit du später mit WinSCP alles bearbeiten kannst und Docker keine "Permission Denied" Fehler wirft.
Bash
# 1. Hauptordner erstellen
mkdir -p ~/scum-docker/data
# 2. In den Ordner gehen
cd ~/scum-docker
# 3. WICHTIG: Schreibrechte für alle (Löst WinSCP & Docker Konflikte)
chmod -R 777 data
Schritt 2: Das Dockerfile (Das Herzstück)
Erstelle die Datei Dockerfile:
Bash
Füge diesen Inhalt ein. Er installiert Wine, Vulkan Grafiktreiber und setzt den Symlink-Trick, damit SteamCMD die Dateien immer am richtigen Ort ablegt.
Dockerfile
FROM debian:bookworm-slim
# Wir arbeiten im Home-Verzeichnis
WORKDIR /home/scum
# 1. System-Updates & Abhängigkeiten (Wine, Vulkan, Audio)
RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \
dpkg --add-architecture i386 && \
apt-get update && apt-get upgrade -y && \
apt-get install -y --no-install-recommends \
locales wget curl unzip ca-certificates \
xvfb xauth x11-utils software-properties-common gnupg \
lib32gcc-s1 winbind dbus dbus-x11 pulseaudio pulseaudio-utils \
libglib2.0-0 libxext6 libx11-6 libfreetype6 libgdiplus \
libvulkan1 libvulkan1:i386 && \
# WineHQ Repository & Installation
mkdir -p /etc/apt/keyrings && \
wget -O - https://dl.winehq.org/wine-builds/winehq.key | gpg --dearmor -o /etc/apt/keyrings/winehq-archive.key - && \
wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/debian/dists/bookworm/winehq-bookworm.sources && \
apt-get update && \
apt-get install -y --install-recommends winehq-stable && \
apt-get clean && rm -rf /var/lib/apt/lists/*
# Locales setzen
RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen
ENV LANG en_US.UTF-8
# 2. User 'scum' anlegen
RUN useradd -m -d /home/scum -s /bin/bash scum
# 3. SteamCMD installieren
RUN mkdir -p /home/scum/steamcmd && \
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf - -C /home/scum/steamcmd && \
chmod +x /home/scum/steamcmd/steamcmd.sh
# 4. DER SYMLINK TRICK & RECHTE FIX
# Verhindert "owned by you" Fehler und leitet Steam-Pfade um
RUN mkdir -p "/home/scum/Steam/steamapps/common" && \
ln -s "/home/scum/server" "/home/scum/Steam/steamapps/common/SCUM Server" && \
chown -R scum:scum /home/scum
# Wine Umgebungsvariablen
ENV WINEDEBUG -all
ENV WINEARCH win64
ENV WINEPREFIX /home/scum/.wine
ENV PATH=/home/scum/steamcmd:$PATH
# Wine initialisieren
USER scum
RUN wineboot --init
# Start-Skript vorbereiten
COPY start-server.sh /home/scum/start-server.sh
USER root
RUN chmod +x /home/scum/start-server.sh && chown scum:scum /home/scum/start-server.sh
USER scum
# Ports exposen (Info für Docker)
EXPOSE 7788/udp 7790/udp 27015/udp 27016/udp 27017/udp 8037/udp 7788/tcp 7790/tcp
CMD ["/home/scum/start-server.sh"]
Alles anzeigen
Schritt 3: Das Start-Skript (start-server.sh)
Erstelle die Datei start-server.sh:
Bash
Dieser Inhalt sorgt für das automatische Update bei jedem Start und nutzt die manuelle Xvfb-Methode für Stabilität.
Bash
#!/bin/bash
# 1. System Fixes (Audio/DBus)
if [ ! -d /var/run/dbus ]; then
sudo mkdir -p /var/run/dbus 2>/dev/null || true
fi
export PULSE_SERVER=unix:/tmp/pulse.sock
export WINEPREFIX="/home/scum/.wine"
echo "--- 1. Starte SteamCMD Update (AppID 3792580) ---"
/home/scum/steamcmd/steamcmd.sh \
+@sSteamCmdForcePlatformType windows \
+login anonymous \
+app_update 3792580 validate \
+quit
echo "--- 2. Starte virtuellen Bildschirm (Xvfb) ---"
# Display :99 manuell starten
Xvfb :99 -screen 0 640x480x24 &
sleep 2
export DISPLAY=:99
echo "--- 3. Starte SCUM Server ---"
cd /home/scum/server
# Server starten
exec wine SCUM/Binaries/Win64/SCUMServer.exe \
-logs \
-NoSound \
-Port=7778 \
-QueryPort=27017 \
-MultiHome=0.0.0.0
Alles anzeigen
Schritt 4: Die docker-compose.yml
Erstelle die Datei docker-compose.yml:
Bash
Wir nutzen network_mode: "host", damit der Server direkt am Internet hängt (kein Port-Forwarding Stress).
YAML
services:
scum:
build: .
container_name: scum-server
restart: unless-stopped
network_mode: "host"
volumes:
# Hier landen die Spieldateien auf deinem Host
- ./data:/home/scum/server
environment:
- TZ=Europe/Berlin
Alles anzeigen
Schritt 5: Server starten & Firewall
Jetzt bauen wir den Container und starten ihn. Der erste Start dauert ca. 10-20 Minuten (Download von ~15 GB).
Bash
Die Firewall (UFW) einstellen: Während der Server lädt, öffne die Ports. Das ist die komplette Liste:
Bash
sudo ufw allow 7777/udp # Game
sudo ufw allow 7778/udp # Peer (WICHTIG!)
sudo ufw allow 7779/udp # Connection
sudo ufw allow 7777/tcp # Handshake
sudo ufw allow 7779/tcp # Handshake
sudo ufw allow 27015:27017/udp # Steam Query wen schon
sudo ufw allow 8037/udp # BattlEye
sudo ufw reload
Schritt 6: Admin werden & Konfiguration
Sobald der Server einmal lief (prüfe mit docker logs -f scum-server), kannst du ihn konfigurieren.
1. Admin werden (Gott-Modus): Führe diesen Befehl im Terminal aus (ersetze die ID durch deine SteamID64):
Bash
echo "76561steam64" > ~/scum-docker/data/SCUM/Saved/Config/WindowsServer/AdminUsers.ini
docker restart scum-server
2. Einstellungen ändern (ServerSettings.ini
Verbinde dich mit WinSCP zum Ordner ~/scum-docker/data/SCUM/Saved/Config/WindowsServer/. Bearbeite die ServerSettings.ini.
- Tipp: Setze scum.MaxPingCheckEnabled=0, damit Docker dich nicht kickt.
Schritt 7: Automatischer Neustart & Updates (Cronjob)
Damit der Server jeden Morgen um 06:00 Uhr Updates zieht und neu startet (mit Logbuch):
- crontab -e
Zeile einfügen:
Bash
🎉 Fertig!
Dein Server ist jetzt:
- High Performance (Host Mode, Vulkan).
- Wartungsarm (Auto-Updates jeden Morgen).
- Sicher (Firewall konfiguriert).
- Anpassbar (Voller Zugriff auf Configs via WinSCP).
Viel Spaß auf der Insel! 🧟♂️🏝️
⚠️ Wichtiger Haftungsausschluss (Disclaimer)
Bitte vor der Installation sorgfältig lesen:
Die in dieser Anleitung bereitgestellten Informationen, Skripte und Konfigurationsdateien wurden nach bestem Wissen und Gewissen erstellt und getestet. Die Nutzung dieser Anleitung erfolgt jedoch ausschließlich auf eigene Gefahr.
Ich (der Ersteller dieser Anleitung) übernehme keine Haftung für:
- Schäden an der Hardware:
- Durch den Betrieb eines Game-Servers (insbesondere SCUM) entsteht eine hohe Last auf Prozessor (CPU), Arbeitsspeicher (RAM) und Festplatten (I/O). Ich hafte nicht für Überhitzung, Hardware-Defekte, verkürzte Lebensdauer von Komponenten oder Folgeschäden an der Server-Hardware.
- Datenverlust oder Software-Schäden:
- Es wird keine Garantie für die Integrität der Spieldaten übernommen. Savegames können durch Updates, falsche Konfigurationen oder Abstürze korrupt werden. Regelmäßige Backups liegen in der alleinigen Verantwortung des Nutzers.
- Sicherheit und Netzwerk:
- Das Öffnen von Ports und das Betreiben eines öffentlichen Servers birgt immer Sicherheitsrisiken. Für etwaige Sicherheitslücken, DDoS-Angriffe oder unbefugte Zugriffe auf den Server wird keine Haftung übernommen.
- Funktionalität:
- Da sich Software (Docker, Linux, Wine, SCUM) ständig weiterentwickelt, kann keine Garantie dafür übernommen werden, dass diese Anleitung in Zukunft ohne Anpassungen funktioniert.
Mit der Durchführung der hier beschriebenen Schritte bestätigst du, dass du über das nötige technische Verständnis verfügst und die alleinige Verantwortung für deinen Server trägst.