# 📘 Anleitung: Satisfactory Dedicated Server im Docker einrichten

## Inhalt

- [📘 Anleitung: Satisfactory Dedicated Server im Docker einrichten](#-anleitung-satisfactory-dedicated-server-im-docker-einrichten)
  - [Inhalt](#inhalt)
  - [1️⃣ Vorbereitung](#1️⃣-vorbereitung)
  - [2️⃣ Projektstruktur](#2️⃣-projektstruktur)
  - [3️⃣ docker-compose.yml](#3️⃣-docker-composeyml)
  - [4️⃣ Server API-Fehler („Failed to Connect to the server API“)](#4️⃣-server-api-fehler-failed-to-connect-to-the-server-api)
  - [5️⃣ Savegames von Windows übertragen](#5️⃣-savegames-von-windows-übertragen)
    - [Speicherort Windows](#speicherort-windows)
    - [Zielort Server](#zielort-server)
    - [Schritte](#schritte)
  - [6️⃣ Verbindung im Spiel](#6️⃣-verbindung-im-spiel)
  - [7️⃣ Wichtige Hinweise](#7️⃣-wichtige-hinweise)
  - [8️⃣ Fehlerbehebung](#8️⃣-fehlerbehebung)
  - [✅ Status](#-status)

---

## 1️⃣ Vorbereitung

- System mit **Docker und Docker Compose** (mind. 4 Cores, 8 GB RAM empfohlen)
- Ports:
  - `7777/udp` Game Port
  - `7777/tcp` Server API Port (wichtig)
  - `15000/udp` Query Port
  - `15777/udp` Beacon Port

**Keine Steam-Login-Daten nötig** (anonymes SteamCMD wird verwendet).

## 2️⃣ Projektstruktur

Im gewünschten Verzeichnis anlegen:

```plaintext
/docker/satisfactory-server/
├── docker-compose.yml
├── config/
└── server-data/
```

## 3️⃣ docker-compose.yml

```yaml
version: "3"

services:
  satisfactory-server:
    container_name: satisfactory-server
    image: wolveix/satisfactory-server:latest
    restart: unless-stopped
    ports:
      - "7777:7777/udp"    # Game Port
      - "7777:7777/tcp"    # Server API Port (wichtig!)
      - "15000:15000/udp"  # Query Port
      - "15777:15777/udp"  # Beacon Port
    volumes:
      - ./config:/config
      - ./server-data:/server
    environment:
      - MAXPLAYERS=16
      - PUID=1000
      - PGID=1000
```

Danach starten:

```bash
docker compose up -d
```

## 4️⃣ Server API-Fehler („Failed to Connect to the server API“)

**Ursache:** TCP-Port 7777 war nicht freigegeben.  
**Lösung:**

- TCP-Port 7777 in der `docker-compose.yml` hinzufügen.
- Firewallregel für `7777/tcp` einrichten.
- Container neu starten.

## 5️⃣ Savegames von Windows übertragen

### Speicherort Windows

```powershell
%LOCALAPPDATA%\FactoryGame\Saved\SaveGames
```

### Zielort Server

```powershell
./server-data/FactoryGame/Saved/SaveGames
```

### Schritte

1. Auf Windows `*.sav` Dateien kopieren.
2. Auf Server in obigen Ordner einfügen.
3. Container neu starten:

   ```bash
   docker compose down
   docker compose up -d
   ```

4. Im Server-Manager den Savegame laden.

## 6️⃣ Verbindung im Spiel

- Starte **Satisfactory**.
- Öffne **Server Manager**.
- Füge Server hinzu per **IP-Adresse + Port 7777**.
- Verbinde dich, setze Servernamen und Admin-Passwort.

## 7️⃣ Wichtige Hinweise

✅ **Keine Steam-Login-Daten eintragen.**  
✅ **Ports immer UDP und TCP prüfen.**  
✅ **Server API benötigt `7777/tcp`, sonst keine Verwaltung möglich.**  
✅ **Speicherstände nur kopieren, wenn der Server gestoppt ist.**

## 8️⃣ Fehlerbehebung

| Symptom                                   | Ursache & Lösung                        |
|-------------------------------------------|------------------------------------------|
| „Failed to Connect to the server API“     | 7777/tcp fehlt → Port freigeben         |
| Server wird nicht gefunden                | Query/Beacon Port prüfen, Firewall      |
| Savegame erscheint nicht                  | Schreibrechte, korrekter Pfad prüfen    |
| Spiel friert bei Verbindung ein           | RAM/CPU Auslastung prüfen               |

## ✅ Status

✔ Server läuft stabil  
✔ Verbindung ist möglich  
✔ Verwaltung funktioniert im Server-Manager  
✔ Savegames erfolgreich übernommen

---
