Valheim
Docker
If you are looking for a guide on how to get started click here
Mod Support! It is supported to launch the server with BepInEx but!!!!! as a disclaimer! You take responsibility for debugging why your server won't start. Modding is not supported by the Valheim developers officially yet; Which means you WILL run into errors. This repo has been tested with running ValheimPlus as a test mod and does not have any issues. See Getting started with mods
Environment Variables
See further on down for advanced environment variables.
Variable | Default | Required | Description |
---|---|---|---|
TZ | America/Los_Angeles |
FALSE | Sets what timezone your container is running on. This is used for timestamps and cron jobs. Click Here for which timezones are valid. |
PUID | 1000 |
FALSE | Sets the User Id of the steam user. |
PGID | 1000 |
FALSE | Sets the Group Id of the steam user. |
PORT | 2456 |
TRUE | Sets the port your server will listen on. Take note it will also listen on +2 (ex: 2456, 2457, 2458) |
NAME | Valheim Docker |
TRUE | The name of your server! Make it fun and unique! |
WORLD | Dedicated |
TRUE | This is used to generate the name of your world. |
PUBLIC | 1 |
FALSE | Sets whether or not your server is public on the server list. |
PASSWORD | 12345 |
TRUE | Set this to something unique! |
AUTO_UPDATE | 0 |
FALSE | Set to 1 if you want your container to auto update! This means at 1 am it will update, stop, and then restart your server. |
AUTO_UPDATE_SCHEDULE | 0 1 * * * |
FALSE | This works in conjunction with AUTO_UPDATE and sets the schedule to which it will run an auto update. If you need help figuring out a cron schedule click here |
AUTO_BACKUP | 0 |
FALSE | Set to 1 to enable auto backups. Backups are stored under /home/steam/backups which means you will have to add a volume mount for this directory. |
AUTO_BACKUP_SCHEDULE | */15 * * * * |
FALSE | Change to set how frequently you would like the server to backup. If you need help figuring out a cron schedule click here. |
AUTO_BACKUP_REMOVE_OLD | 1 |
FALSE | Set to 0 to keep all backups or manually manage them. |
AUTO_BACKUP_DAYS_TO_LIVE | 3 |
FALSE | This is the number of days you would like to keep backups for. While backups are compressed and generally small it is best to change this number as needed. |
AUTO_BACKUP_ON_UPDATE | 0 |
FALSE | Create a backup on right before updating and starting your server. |
AUTO_BACKUP_ON_SHUTDOWN | 0 |
FALSE | Create a backup on shutdown. |
WEBHOOK_URL | `` | FALSE | Supply this to get information regarding your server's status in a webhook or Discord notification! Click here to learn how to get a webhook url for Discord |
UPDATE_ON_STARTUP | 1 |
FALSE | Tries to update the server the container is started. |
Docker Compose
Simple
This is a basic example of a docker compose, you can apply any of the variables above to the
environment
section below but be sure to follow each variables description notes!
version: "3"
services:
valheim:
image: mbround18/valheim:latest
ports:
- 2456:2456/udp
- 2457:2457/udp
- 2458:2458/udp
environment:
- PORT=2456
- NAME="Created With Valheim Docker"
- WORLD="Dedicated"
- PASSWORD="Banana Phone"
- TZ=America/Chicago
- PUBLIC=1
volumes:
- ./valheim/saves:/home/steam/.config/unity3d/IronGate/Valheim
- ./valheim/server:/home/steam/valheim
Everything but the kitchen sink
version: "3"
services:
valheim:
image: mbround18/valheim:latest
ports:
- 2456:2456/udp
- 2457:2457/udp
- 2458:2458/udp
environment:
- PORT=2456
- NAME="Created With Valheim Docker"
- WORLD="Dedicated"
- PASSWORD="Strong! Password @ Here"
- TZ=America/Chicago
- PUBLIC=1
- AUTO_UPDATE=1
- AUTO_UPDATE_SCHEDULE="0 1 * * *"
- AUTO_BACKUP=1
- AUTO_BACKUP_SCHEDULE="*/15 * * * *"
- AUTO_BACKUP_REMOVE_OLD=1
- AUTO_BACKUP_DAYS_TO_LIVE=3
- AUTO_BACKUP_ON_UPDATE=1
- AUTO_BACKUP_ON_SHUTDOWN=1
- WEBHOOK_URL="https://discord.com/api/webhooks/IM_A_SNOWFLAKE/AND_I_AM_A_SECRET"
- UPDATE_ON_STARTUP=0
volumes:
- ./valheim/saves:/home/steam/.config/unity3d/IronGate/Valheim
- ./valheim/server:/home/steam/valheim
- ./valheim/backups:/home/steam/backups
Odin
This repo has a CLI tool called Odin in it! It is used for managing the server inside the container. If you are looking for instructions for it click here: Odin
Click here to see advanced environment variables for Odin
BepInEx Support
This repo automatically launches with the proper environment variables for BepInEx. However, you have to install it manually in the container due to the fact that the modding community around Valheim is still in its infancy.
Click Here to view documentation on BepInEx Support
Webhook Support
This repo can automatically send notifications to discord via the WEBHOOK_URL variable. Only use the documentation link below if you want advanced settings!
Click Here to view documentation on Webhook Support
Sponsors
Release Notifications
If you would like to have release notifications tied into your Discord server, click here:
Note: The discord is PURELY for release notifications and any + all permissions involving sending chat messages has been disabled. Any support for this repository must take place on the Discussions.
Versions:
- latest (Stable):
- 1.2.0 (Stable):
- Readme update to include the versions section and environment variables section.
- #18 Changed to
root
as the default user to allow updated steams User+Group IDs. - #18 Fixed issue with the timezone not persisting.
- To exec into the container you now have to include the
-u|--user
argument to access steam directly. Exampledocker-compose exec --user steam valheim bash
- There is now a
dry-run
command argument onodin
to preview what the command would do. - You can run with
-d|--debug
to get verbose logging of whatodin
is doing. - #11 Added check for length of password and fail on odin install or odin stop failures.
- #24 Added public variable to dockerfile and odin
- #35 Fix for the server to now utilizing SIGINT
YOU WILL HAVE TO MANUALLY STOP YOUR SERVER;
usepidof valheim_server.x86_64
to get the pid and thenkill -2 $pid
but replace pid with the pid frompidof
- #53 Formatted scripts to be more useful and added timezone scheduling.
- #77 Fix auto update not acknowledging variables and added odin to system bin.
- #89 Daemonized the server process by using rust specific bindings rather than dropping down to shell.
- 1.1.1 (Stable):
- Includes PR #10 to fix the double world argument.
- 1.1.0 (Stable):
- Includes a fix for #3 and #8.
- Improves the script interface and separation of concerns, files now have a respective code file that supports interactions for cleaner development experience.
- Docker image is cleaned up to provide a better usage experience. There is now an
AUTO_UPDATE
feature. - Has a bug where the script has two entries for the world argument.
- 1.0.0 (Stable):
- It works! It will start your server and stop when you shut down.
- This supports passing in environment variables or arguments to
odin
- Has a bug in which it does not read passed in variables appropriately to Odin. Env variables are not impacted see #3.