Nachdem umfangreiche Recherchen und bestehende Tutorials leider zu keinem funktionierenden Ergebnis führten, habe ich mich dazu entschlossen, eine eigene Lösung zu entwickeln. Durch intensives Testen und Anpassen verschiedener Konfigurationen ist es mir gelungen, ein stabiles Setup zu erstellen. Die hier dokumentierte Methode ist das Ergebnis dieser Arbeit.
Beiträge von Rauii
-
-
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
Code# 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 dataSchritt 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
Docker
Alles anzeigenFROM 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"]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
Bash
Alles anzeigen#!/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.0Schritt 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
Code
Alles anzeigenservices: 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/BerlinSchritt 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
Codesudo 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 reloadSchritt 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
Codeecho "76561steam64" > ~/scum-docker/data/SCUM/Saved/Config/WindowsServer/AdminUsers.ini docker restart scum-server2. 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.
-
🧟♂️ Der ultimative SCUM Server auf Linux (Docker + Wine)