Back to Setup Guides

    Docker Server Setup

    Enshrouded Dedicated Server

    Deploy an Enshrouded dedicated server using Docker for easy management, updates, and portability. This guide uses Docker Compose for simple configuration.

    Prerequisites

    • Docker installed on your system (Get Docker)
    • Docker Compose v2 or later (included with Docker Desktop)
    • At least 16GB RAM recommended for the host system
    • Ports 15636-15637 UDP available and forwarded

    1Create Directory Structure

    Create a directory for your Enshrouded server files:

    mkdir -p ~/enshrouded-server/{server,config,logs}
    cd ~/enshrouded-server

    2Create Docker Compose File

    Create a docker-compose.yml file:

    docker-compose.yml
    version: "3.8"
    
    services:
      enshrouded:
        image: sknnr/enshrouded-dedicated-server:latest
        container_name: enshrouded-server
        restart: unless-stopped
        ports:
          - "15636:15636/udp"
          - "15637:15637/udp"
        environment:
          - SERVER_NAME=My Enshrouded Server
          - SERVER_PASSWORD=
          - GAME_PORT=15636
          - QUERY_PORT=15637
          - SERVER_SLOTS=16
          - SERVER_IP=0.0.0.0
        volumes:
          - ./server:/home/steam/enshrouded
          - ./config:/home/steam/enshrouded/savegame
        cap_add:
          - SYS_NICE

    Note: The sknnr/enshrouded-dedicated-server is a community-maintained image. Check Docker Hub for the latest version and alternative images.

    3Advanced Configuration (Optional)

    For full control over game settings, create a custom enshrouded_server.json file in the config directory. Use our Config Builder to generate this file.

    config/enshrouded_server.json
    {
      "name": "My Docker Enshrouded Server",
      "password": "",
      "saveDirectory": "./savegame",
      "logDirectory": "./logs",
      "ip": "0.0.0.0",
      "gamePort": 15636,
      "queryPort": 15637,
      "slotCount": 16,
      "gameSettings": {
        "playerHealthFactor": 1,
        "playerManaFactor": 1,
        "playerStaminaFactor": 1,
        "enableDurability": true,
        "enableStarvingDebuff": false,
        "foodBuffDurationFactor": 1,
        "fromHungerToStarving": 600000000000,
        "shroudTimeFactor": 1,
        "randomSpawnerAmount": "Normal"
      }
    }

    When using a custom config, mount it to the container and remove the environment variables from docker-compose.yml.

    4Start the Server

    Start your Enshrouded server with Docker Compose:

    # Start the server (first run will download the image and game files)
    docker compose up -d
    
    # View logs
    docker compose logs -f
    
    # Stop the server
    docker compose down
    
    # Restart the server
    docker compose restart

    First Start: The initial startup will take several minutes as Docker downloads the game files (~8GB). Monitor progress with docker compose logs -f

    5Firewall Configuration

    Ensure your firewall allows the required ports:

    UFW (Ubuntu/Debian)
    sudo ufw allow 15636/udp
    sudo ufw allow 15637/udp
    firewalld (CentOS/RHEL)
    sudo firewall-cmd --permanent --add-port=15636/udp
    sudo firewall-cmd --permanent --add-port=15637/udp
    sudo firewall-cmd --reload

    If hosting at home, also configure port forwarding on your router for these ports.

    Updating the Server

    To update your server when a new game version is released:

    # Pull the latest image
    docker compose pull
    
    # Restart with the new image
    docker compose up -d

    Useful Commands

    # Check container status
    docker compose ps
    
    # View real-time logs
    docker compose logs -f enshrouded
    
    # Execute command in container
    docker compose exec enshrouded bash
    
    # Check resource usage
    docker stats enshrouded-server
    
    # Backup save data
    cp -r ./config ./backup-$(date +%Y%m%d)

    Troubleshooting

    Container keeps restarting

    Check logs with docker compose logs. Common causes: insufficient memory, port conflicts, or permission issues on mounted volumes.

    Cannot connect to server

    Verify ports 15636-15637 UDP are open in your firewall and forwarded on your router. Check that the container is running with docker compose ps.

    Permission denied errors

    The container runs as a specific user. Ensure mounted directories have proper permissions:sudo chown -R 1000:1000 ./server ./config