mbround18/valheim

By mbround18

Updated 2 days ago

Valheim Dedicated server powered by Odin with Automatic updates, backups, and full mod support.

Image
Artifact
Web servers
61

5M+

mbround18/valheim repository overview

Valheim

All Contributors

Running on Linux Server

This repo bundles its tools in a way that you can run them without having to install docker! If you purely want to run this on a Linux based system, without docker, take a look at the links below <3

Using the binaries to run on an Ubuntu Server, you will have to be more involved and configure a few things manually. If you want a managed, easy one-two punch to manage your server. Then look at the Docker section <3

Running with 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

Download Locations
DockerHub

DockerHub Valheim DockerHub Odin

GitHub Container Registry

GHCR Valheim GHCR Odin

Environment Variables

See further on down for advanced environment variables.

VariableDefaultRequiredDescription
PORT2456TRUESets the port your server will listen on. Take note it will also listen on +2 (ex: 2456, 2457, 2458)
NAMEValheim DockerTRUEThe name of your server! Make it fun and unique!
WORLDDedicatedTRUEThis is used to generate the name of your world.
PUBLIC1FALSESets whether or not your server is public on the server list.
PASSWORD<please set me>TRUESet this to something unique!
TYPEVanillaFALSEThis can be set to ValheimPlus, BepInEx, BepInExFull or Vanilla
MODS<nothing>FALSEThis is an array of mods separated by comma and a new line. Click Here for Examples Supported files are zip, dll, and cfg.
WEBHOOK_URL<nothing>FALSESupply 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_STARTUP1FALSETries to update the server the container is started.
Container Env Variables
VariableDefaultRequiredDescription
TZAmerica/Los_AngelesFALSESets what timezone your container is running on. This is used for timestamps and cron jobs. Click Here for which timezones are valid.
PUID1000FALSESets the User Id of the steam user.
PGID1000FALSESets the Group Id of the steam user.
Auto Update
VariableDefaultRequiredDescription
AUTO_UPDATE0FALSESet to 1 if you want your container to auto update! This means at the times indicated by AUTO_UPDATE_SCHEDULE it will check for server updates. If there is an update then the server will be shut down, updated, and brought back online if the server was running before.
AUTO_UPDATE_SCHEDULE0 1 * * *FALSEThis 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_UPDATE_PAUSE_WITH_PLAYERS0FALSEDoes not process an update for the server if there are players online.

Auto update job, queries steam and compares it against your internal steam files for differential in version numbers.

Auto Backup
VariableDefaultRequiredDescription
AUTO_BACKUP0FALSESet 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 * * * *FALSEChange 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_OLD1FALSESet to 0 to keep all backups or manually manage them.
AUTO_BACKUP_DAYS_TO_LIVE3FALSEThis 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_UPDATE0FALSECreate a backup on right before updating and starting your server.
AUTO_BACKUP_ON_SHUTDOWN0FALSECreate a backup on shutdown.
AUTO_BACKUP_PAUSE_WITH_NO_PLAYERS0FALSEWill skip creating a backup if there are no players. PUBLIC must be set to 1 for this to work!

Auto backup job produces an output of a *.tar.gz file which should average around 30mb for a world that has an average of 4 players consistently building on. You should be aware that if you place the server folder in your saves folder your backups could become astronomical in size. This is a common problem that others have observed, to avoid this please follow the guide for how volume mounts should be made in the docker-compose.yml.

Huginn Http Server
VariableDefaultRequiredDescription
ADDRESSYour Public IPFALSEThis setting is used in conjunction with odin status and setting this will stop odin from trying to fetch your public IP
HTTP_PORTanything above 1024FALSESetting this will spin up a little http server that provides two endpoints for you to call.
  • /metrics provides a prometheous style metrics output.
  • /status provides a more traditional status page.

Note on ADDRESS this can be set to 127.0.0.1:<your query port> or <your public ip>:<your query port> but does not have to be set. If it is set, it will prevent odin from reaching out to aws ip service from asking for your public IP address. Keep in mind, your query port is +1 of what you set in the PORT env variable for your valheim server.

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

How to Transfer Files

This is a tutorial of a recommended path to transfering files. This can be done to transfer world files between hosts, transfer BepInEx configs, or even to transfer backups.

Click Here to view the tutorial of how to transfer files.

Sponsors

Looking for sponsors!

Release Notifications

If you would like to have release notifications tied into your Discord server, click here:

Discord Banner

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): Mod support! and cleaned up the code base.
  • 1.4.x (Stable): Webhook for discord upgrade.
  • 1.3.x (Stable): Health of codebase improvements.
  • 1.2.0 (Stable): Added additional stop features and sig for stopping.
  • 1.1.1 (Stable): Patch to fix arguments
  • 1.1.0 (Unstable): Cleaned up image and made it faster
  • 1.0.0 (Stable): It works!

Contributors ✨

Thanks goes to these wonderful people (emoji key):

This project follows the all-contributors specification. Contributions of any kind welcome!

Tag summary

Content type

Unrecognized

Digest

sha256:af3a1a6c7

Size

1.6 GB

Last updated

2 days ago

docker pull mbround18/valheim:buildcache