Containerized Enshrouded Servers using Proton and Docker Compose
Keen Games ships Enshrouded's dedicated server as a Windows only binary. On a Linux host the only practical deployment path is a Proton (or Wine) compatibility layer, ideally inside a container so the dependency surface stays isolated and the host stays clean. This guide uses the community maintained sknnr/enshrouded-dedicated-server image with Docker Compose on Debian 12, mounts persistent volumes for the world save, and survives container rebuilds without losing progress.
Prerequisites
- Debian 12 with Docker Engine and the Compose plugin.
- At least 8 GB RAM, 4 modern CPU cores, and 20 GB of SSD disk for the world.
- UDP 15636 and UDP 15637 open at the firewall.
Step 1: Project Layout
sudo mkdir -p /opt/enshrouded/{savegame,gamefiles}sudo chown -R 4711:4711 /opt/enshroudedcd /opt/enshroudedStep 2: The Compose File
services: enshrouded: image: sknnr/enshrouded-dedicated-server:latest container_name: enshrouded restart: unless-stopped stop_grace_period: 60s ports: - "15636:15636/udp" - "15637:15637/udp" environment: SERVER_NAME: "Veil of the Shroud" SERVER_PASSWORD: "REPLACE_ME" SERVER_SLOTS: 16 SERVER_IP: "0.0.0.0" GAME_PORT: 15636 QUERY_PORT: 15637 volumes: - ./savegame:/home/steam/enshrouded/savegame - ./gamefiles:/home/steam/enshroudedTwo volume mounts matter here. The gamefiles mount lets SteamCMD cache the installation between rebuilds (no 6 GB redownload on every docker compose down). The savegame mount is the durable world data, and it must live outside the image.
Step 3: First Boot
docker compose up -ddocker compose logs -f enshroudedFirst boot pulls the Windows binary via SteamCMD, then launches it under Proton. Expect a long initial install. Once you see Server started on 0.0.0.0:15636, the world is live.
Step 4: Verify Persistence Survives a Rebuild
docker compose down# Confirm the world file persists on the hostls -lah /opt/enshrouded/savegame/docker compose up -d# Connect with a client and confirm the world is intactStep 5: Scheduled Backups
#!/usr/bin/env bashset -euo pipefailTS=$(date +%Y%m%d-%H%M)tar -C /opt/enshrouded -czf /opt/enshrouded/backups/world-${TS}.tar.gz savegamefind /opt/enshrouded/backups -type f -mtime +14 -deletemkdir -p /opt/enshrouded/backupschmod +x /opt/enshrouded/backup.shcrontab -e0 */4 * * * /opt/enshrouded/backup.shPerformance and Tuning
- Pin
cpus: "4"on the service if other containers share the host, so Proton cannot starve neighbors. - Use SSD storage. The Enshrouded world streams chunks aggressively and stalls on rotational disks.
- Ship the backup tarballs offsite (S3, restic) for any community of more than five players.
Conclusion
Wrapping the Windows only Enshrouded binary in a Proton container makes the deployment behave like any other Compose stack: predictable, reproducible, and persistent across rebuilds. The Proton layer is an implementation detail; the operator surface is just Docker.