Setting up an Enshrouded Dedicated Server with Docker
Tags: enshrouded, docker, shell, gamedev
Published: 2024-02-03 23:50:37

## Sauce

TLDR: [GitHub Repository](https://github.com/mbround18/enshrouded-docker/blob/main/README.md)

## Introduction

In the realm of gaming, where the digital and the mystical intertwine, setting up a server should not be a task that dampens your spirits. With the advent of Docker, launching an enshrouded server has become as effortless as casting a spell in a world brimming with magic and adventure. This article unveils the arcane secrets to effortlessly deploying your enshrouded server, allowing you to dive into the gameplay without the mundane worries of traditional server setup.

## Before You Begin Your Quest

Ensure your toolkit is complete with Docker and Docker Compose installed. These are the wand and spellbook for your journey, essential for summoning your server into existence.

## Crafting Your Server with Docker Compose

The heart of your server lies within the `docker-compose.yml` file—a grimoire where the configurations of your server are inscribed. Here's a snippet to begin conjuring your enshrouded server:

```yaml
services:
  enshrouded:
    image: mbround18/enshrouded-docker:latest
    build:
      context: .
      dockerfile: Dockerfile
      platforms:
        - linux/amd64
    environment:
      SERVER_NAME: "My Enshrouded Server"
    ports:
      - "15636:15636/udp"
      - "15636:15636/tcp"
      - "15637:15637/udp"
      - "15637:15637/tcp"
    volumes:
      - ./data:/home/steam/enshrouded
```

With this incantation, your server is but a `docker-compose up` away from awakening.

### Beyond the Basic Spell: Custom Configurations

While the initial setup is akin to a basic spell, the true magic lies in customization. Tailor your server's environment variables within the `docker-compose.yml` to fit the unique needs of your adventure.

| Environment Variable | Description                        | Default Value        |
|----------------------|------------------------------------|----------------------|
| `SERVER_NAME`        | Name of the server                 | "Enshrouded Server"  |
| `PASSWORD`           | Password for the server            | "" (empty string)    |
| `SAVE_DIRECTORY`     | Save directory for the game        | "./savegame"         |
| `LOG_DIRECTORY`      | Log directory for the server       | "./logs"             |
| `SERVER_IP`          | IP address for the server          | "0.0.0.0"            |
| `GAME_PORT`          | Game port for the server           | 15636                |
| `QUERY_PORT`         | Query port for the server          | 15637                |
| `SLOT_COUNT`         | Number of slots for the server     | 16                   |


## Ensuring Your Server Evolves with You

As your quest evolves, so too might your server needs. Updating your server is as simple as adjusting your `docker-compose.yml` and restarting the server with a simple down and up command. This ensures your server is always aligned with your latest adventures.

## Heed the Call for Backup

Before venturing too far into the unknown, heed the wise advice to back up your save files. The realm of Docker and the enshrouded server setup guide offers pathways to integrating auto backups, safeguarding your progress against unforeseen disasters.

[I highly recommend adding backups, this is an easy method to accomplish that goal.](https://github.com/mbround18/enshrouded-docker/blob/main/docs%2Fcompose-with-backups.md)

## Joining Forces for the Greater Good

Embark on your journey with the enshrouded server and Docker, and let your gaming adventures be limited only by your imagination. The path is laid out before you; summon your server, customize your realm, and step forth into the adventure that awaits.