Embark on an adventure in the mystical world of Embervale with your own dedicated Enshrouded server. This guide walks you through setting up a dedicated server using Docker, making the process consistent and easy across different operating systems.
Enshrouded is an immersive survival action RPG set in a vast, voxel-based open world. Players must explore dangerous lands, craft for survival, and battle mystical creatures. The game supports cooperative multiplayer for up to 16 players, creating the perfect environment for shared adventures.

Image generated with the help of ChatGPT
- Dynamically simulated water, water tools, and flooding safeguards bring bases to life.
- Veilwater Basin biome, new quests, enemies, and gear raise the progression cap to level 45.
- Fishing, greatswords, rebalanced loot, and workstation force requirements deepen crafting/combat.
- Dedicated servers now expose tags, a visitor role with terraforming limits, and improved admin tools.
- All server/gameplay fields are documented in
docs/enshrouded_server.md. - A complete sample with every setting populated ships in
ressources/enshrouded_server.json.
You can run the Enshrouded server inside a Docker container on any operating system that supports Docker, including but not limited to:
| Production-Ready Linux | Desktop/Test Only | Notes |
|---|---|---|
| ✅ Ubuntu 24.04 LTS (recommended) | ✅ macOS (Docker Desktop) | |
| ✅ Ubuntu 22.04 LTS | ✅ Windows 10/11 (WSL 2 + Docker Desktop) | |
| ✅ Ubuntu 20.04 LTS | ||
| ✅ Debian 12 / 11 | ||
| ✅ Fedora 38+ | ||
| ✅ Arch Linux | Rolling release — always up-to-date | |
| ✅ AlmaLinux / Rocky Linux 9 / 8 | CentOS alternatives | |
| ✅ openSUSE Leap / Tumbleweed |
You’ll need:
- A system with Docker and Docker Compose installed
- sudo or administrative privileges
ufwor firewall configuration (ensure port 15637 is open and forwarded)
Docker allows you to run applications in isolated containers. It's ideal for deploying an Enshrouded dedicated server because it ensures consistency, portability, and easy management.
This guide will walk you through installing Docker on Ubuntu 24.04. These steps also work on most other Linux distributions with minor adjustments.
Before installing anything, update your system to ensure all packages are current.
Debian/Ubuntu
sudo apt update && sudo apt upgrade -y
sudo apt update: Refreshes the package index.sudo apt upgrade -y: Upgrades installed packages automatically.
Fedorasudo dnf upgrade --refresh
Arch Linuxsudo pacman -Syu
Docker relies on a few helper packages. Install them with:
sudo apt install apt-transport-https ca-certificates curl software-properties-common lsb-release gnupg -yapt-transport-https: Allowsaptto use HTTPS.ca-certificates: Ensures your system trusts SSL certificates.curl: Command-line tool for downloading files.software-properties-common: Adds support foradd-apt-repository.lsb-release: Provides OS version info.gnupg: Required for managing GPG keys.
Docker signs its packages for security. Add their GPG key:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpgConfigure your system to use Docker’s stable software repository:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullUpdate your package index again and install Docker:
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io -ydocker-ce: Docker Community Editiondocker-ce-cli: Docker command-line interfacecontainerd.io: Container runtime used by Docker
Verify Docker is running:
sudo systemctl status dockerPress q to exit the status screen.
To allow the Docker container to persist game data and configurations, we create a dedicated system user and set up the correct directory.
Run these commands as root or with sudo:
# Create a system user 'enshrouded' without login shell
sudo useradd -m -r -s /bin/false enshrouded
# Ensure the home directory exists
sudo mkdir -p /home/enshrouded
sudo mkdir -p /home/enshrouded/enshrouded_server_docker
# Set proper ownership
sudo chown 1001:1001 /home/enshrouded/enshrouded_server_docker🛡️ This ensures that the container can write to
/home/enshroudedand all server data stays in one clean location.
Looking for the build-it-yourself workflows? Choose the option that fits best:
- Option (A) Use the Prebuilt Image from Docker Hub (following)
- Option (B) Launch the Container (Simplified Version)
- Option (C) Launch the Container (with Environment Variables)
If you prefer not to build the image yourself, you can run the official prebuilt Docker image directly from Docker Hub. This is the fastest and easiest way to get your server up and running.
docker run -d \
--name enshroudedserver \
--restart=always \
-p 15637:15637/udp \
-v /home/enshrouded/enshrouded_server_docker:/home/steam/enshrouded \
bonsaibauer/enshrouded_server_docker:latest
bonsaibauer/enshrouded_server_docker:latestis the official prebuilt image available on Docker Hub- You don’t need to build the image yourself, just pull and run it
- The rest of the parameters are the same as in Option B and C
✅ Tip: Configuration (
enshrouded_server.json) is done in the mounted directory/home/enshrouded/enshrouded_server_dockeras usual.
docker logs -f enshroudedserverThe
-fflag means "follow", which shows real-time output.Wait until you see the following logs to confirm it's running:
[Session] 'HostOnline' (up)! [Session] finished transition from 'Lobby' to 'Host_Online' (current='Host_Online')!To exit the log view safely and keep the server running, press:
Ctrl + C
Go to „4. Edit server configuration“
docker run -d \
--name enshroudedserver \
--restart=always \
-p 15637:15637/udp \
-v /home/enshrouded/enshrouded_server_docker:/home/steam/enshrouded \
-e ENSHROUDED_SERVER_NAME="myservername" \
-e ENSHROUDED_SERVER_MAXPLAYERS=16 \
-e ENSHROUDED_VOICE_CHAT_MODE="Proximity" \
-e ENSHROUDED_ENABLE_VOICE_CHAT=false \
-e ENSHROUDED_ENABLE_TEXT_CHAT=false \
-e ENSHROUDED_GAME_PRESET="Default" \
-e ENSHROUDED_ADMIN_PW="AdminXXXXXXXX" \
-e ENSHROUDED_FRIEND_PW="FriendXXXXXXXX" \
-e ENSHROUDED_GUEST_PW="GuestXXXXXXXX" \
bonsaibauer/enshrouded_server_docker:latest
-d: Run in detached mode (in the background).--name enshroudedserver: Names the container “enshroudedserver”.--restart=always: Automatically restarts the container if it stops or the host reboots.-p 15637:15637/udp: Maps the UDP port 15637 from the container to the host, required for the game server.-v /home/enshrouded/enshrouded_server_docker:/home/steam/enshrouded: Mounts a local directory for persistent data and configuration.-e ENSHROUDED_SERVER_NAME="myservername": Sets the server's visible name.-e ENSHROUDED_SERVER_MAXPLAYERS=16: Limits the number of players to 16.-e ENSHROUDED_VOICE_CHAT_MODE="Proximity": Enables proximity-based voice chat.-e ENSHROUDED_ENABLE_VOICE_CHAT=false: Disables voice chat (this overrides the mode setting).-e ENSHROUDED_ENABLE_TEXT_CHAT=false: Disables text chat in-game.-e ENSHROUDED_GAME_PRESET="Default": Sets the game rules preset.-e ENSHROUDED_ADMIN_PW="AdminXXXXXXXX": Password for admin access.-e ENSHROUDED_FRIEND_PW="FriendXXXXXXXX": Password for friends to join.-e ENSHROUDED_GUEST_PW="GuestXXXXXXXX": Password for guest access.bonsaibauer/enshrouded_server_docker:latest: The Docker Hub image used to run the server.💡 Tip: You can skip the
-eenvironment variables if you prefer to manage all server settings later in theenshrouded_server.jsonfile inside the mounted volume.
🔧 This file is located in the mounted directory:
/home/enshrouded/enshrouded_server_docker/enshrouded_server.json
nano enshrouded_server.jsonEdit the enshrouded_server.json file to configure your server settings.
| Setting | Description | Example / Default Value | Options / Notes |
|---|---|---|---|
| name | Name of the server | "Enshrouded Server" | Any string |
| saveDirectory | Directory where savegames are stored | "./savegame" | File path |
| logDirectory | Directory for log files | "./logs" | File path |
| ip | Server IP binding | "0.0.0.0" | Server ip adress |
| ... | ... | ... | ... |
... View full server settings here
ℹ️ Note: Nano editor
After editing the
enshrouded_server.jsonfile, follow these steps to save your changes and exit the Nano editor:
Save:
- Press
CTRL + O(this means "Write Out").- Press
Enterto confirm and save the file with the current name.Exit:
- Press
CTRL + Xto close the Nano editor.You will then return to the regular command line.
If the container has already been created (e.g. from a previous docker run), you can start it again with:
docker start enshroudedserverTo safely stop the server without deleting the container:
docker stop enshroudedserverTo restart the container (stop and start again):
docker restart enshroudedserverdocker stop enshroudedserver
docker rm enshroudedserverIf this project has helped you in any way, do buy me a coffee so I can continue to build more of such projects in the future and share them with the community!
