Guide — Enshrouded Dedicated Server (Docker)

This guide explains how to deploy the Enshrouded Dedicated Server using Docker with runtime SteamCMD auto-updates, persistent storage, and a production-style workflow.

What This Project Guarantees

Ports

Typical UDP ports:

Ensure these ports are allowed through your firewall and forwarded on your router if hosting publicly.

Quick Start (Docker Compose)

Create a folder on your host and add this docker-compose.yml:

services:
  enshrouded:
    image: ghcr.io/<your-username>/<repo>:latest
    restart: unless-stopped
    ports:
      - "15637:15637/udp"
      - "27015:27015/udp"
    environment:
      - UPDATE_ON_START=1
      - SERVER_NAME=My Enshrouded Server
      - SERVER_SLOTS=16
      # - SERVER_PASSWORD=ChangeMe
    volumes:
      - ./data:/home/steam/enshrouded

Start the server:

docker compose up -d
docker logs -f enshrouded

Persistence Model (What Gets Saved)

All persistent data lives in the ./data directory on your host:

data/
 ├─ savegame/
 ├─ logs/
 ├─ enshrouded_server.json

You can rebuild images, switch tags, or move hosts without losing world data.

Runtime Updates (How “Latest” Works)

On container start, the entrypoint runs SteamCMD to pull the latest Enshrouded dedicated server:

+@sSteamCmdForcePlatformType windows
+app_update 2278520 validate

The Docker image itself remains unchanged, while the server binaries update automatically whenever Steam publishes a new build.

To temporarily disable updates:

UPDATE_ON_START=0

Troubleshooting

Server Not Visible In-Game

Permission Issues in ./data

Ensure the directory is writable by Docker. On Linux hosts:

sudo chown -R $USER:$USER ./data

Container Starts but Server Doesn’t Launch

Check logs:

docker logs -f enshrouded

If you see Wine or X-related errors, ensure Xvfb is started by the entrypoint. If SteamCMD fails, it is often transient network or Steam-side—restart the container.

Security Notes

This aligns with baseline container hardening practices and reduces host risk.

Treat this service like production infrastructure: automate it, back it up, and keep it observable.