Skip to content

Instantly share code, notes, and snippets.

@kipavy
Last active November 29, 2025 09:43
Show Gist options
  • Select an option

  • Save kipavy/aae5c70c4570e7bce5444488fb44cc6f to your computer and use it in GitHub Desktop.

Select an option

Save kipavy/aae5c70c4570e7bce5444488fb44cc6f to your computer and use it in GitHub Desktop.
Enshrouded Dedicated Server Docker

Enshrouded Dedicated Server with Docker Compose

A simple Docker Compose setup for running an Enshrouded dedicated server with persistent data storage.

Quick Start

1. Create the Docker Compose file

cat > docker-compose.yml <<EOF
services:
  enshrouded:
    image: mornedhels/enshrouded-server:latest
    container_name: enshrouded
    hostname: enshrouded
    restart: unless-stopped
    stop_grace_period: 90s
    ports:
      - "15637:15637/udp"
      - "27015:27015/udp"
    volumes:
      - enshrouded-persistent-data:/opt/enshrouded
    # only add ntsync device if your kernel supports it (6.14 or newer)
    # devices:
    #   - /dev/ntsync:/dev/ntsync
    environment:
      - SERVER_NAME=Enshrouded Server
      - SERVER_PASSWORD=password
      - SERVER_SLOT_COUNT=6
      - UPDATE_CRON=0 3 * * *
      - PUID=4711
      - PGID=4711

volumes:
  enshrouded-persistent-data:
EOF

2. Start the server

docker compose up -d

Alternative Automated setup

If you have https://dokploy.com/ you can use my 'Enshrouded' template.

Configuration

Customize your server by editing these environment variables in the docker-compose.yml:

  • SERVER_NAME: Your server name
  • SERVER_PASSWORD: Server password (leave empty for no password)
  • SERVER_SLOTS: Maximum players (default: 6)

For additional configuration options, see the enshrouded-server repository.

Transferring Save Files from Co-op to Dedicated Server

If you want to transfer your existing co-op save files to the dedicated server, follow these steps:

Step 1: Copy Save Files from Your PC

  1. Navigate to your Steam userdata directory: userdata > (Your SteamID) > 1203620 > remote
  2. Copy all save files from this directory

Step 2: Rename Save Files

The save files need to be renamed to match the dedicated server format. Use this script to rename them:

for file in 3bd85c7d*; do
    new_name="${file/3bd85c7d/3ad85aea}"
    mv -- "$file" "$new_name"
done

Step 3: Transfer Files to Docker Volume

  1. Stop the container:
docker compose stop
  1. Copy the renamed files to the Docker volume:
ENSHROUDED_VOLUME=enshrouded_enshrouded-persistent-data
cp remote/* /var/lib/docker/volumes/$ENSHROUDED_VOLUME/_data/server/savegame
  1. Start the container:
docker compose start

Notes

  • The server data is stored in a Docker volume named enshrouded-persistent-data
  • Make sure the required ports (15637/udp, 15636, 27015) are open on your firewall
  • The save file ID conversion is from co-op format (3bd85c7d) to dedicated server format (3ad85aea)
  • If you want to auto-connect to your server with steam, you can add to Enshrouded launch options this: "+connect PUBLIC_IP:15637 +password YOUR_PASS"
#!/bin/bash
VOLUME=enshrouded_enshrouded-persistent-data
REMOTE_NAME="enshrouded_gcloud"
REMOTE_FOLDER="Backups/Saves_jeux/Enshrouded_Backup"
RCLONE_CONF_DIR=/root/.config/rclone/rclone.conf
# --- 1. Arrêter le conteneur ---
echo "Arrêt de $CONTAINER_NAME..."
docker stop $CONTAINER_NAME
# --- 2. Copie des données avec rclone (Sync pour miroir, Copy pour ajouter) ---
echo "Démarrage de la copie rclone..."
docker run --rm \
--name rclone-backup-job \
-v $VOLUME:/data:ro \
-v $RCLONE_CONF_DIR:/config/rclone/ \
rclone/rclone \
copy /data/server/savegame "$REMOTE_NAME:$REMOTE_FOLDER"
# --- 3. Redémarrer le conteneur ---
echo "Redémarrage de $CONTAINER_NAME..."
docker start $CONTAINER_NAME
echo "Sauvegarde terminée."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment