Games Valheim
Valheim server requirements
Requirements
| Our benchmark | ||||
|---|---|---|---|---|
| CPU | 14% of one core, idle | 2 to 4 modern cores, per-core speed first | Quad-core, about 3 GHz+ | |
| RAM | 1.3 GB idle, 1.8 GB peak | 4 GB small, 4 to 6 GB for 5 to 10, 8 GB modded | 4 GB+ server, 8 GB system min, 16 GB+ rec | |
| Disk | 2.1 GB install | SSD, 10 to 20 GB basic, 30 to 60 GB modded | SSD or NVMe | |
| Network | UDP 2456 and 2457 | Ports 2456-2457, no forwarding with crossplay | 10 Mbps upload, 20+ Mbps near 10 players, ports 2456-2457 | Broadband, good upload |
| OS | Linux, native | Windows or Linux, glibc 2.29+ | Windows or Linux | 64-bit Windows |
RAM by players
4 GB
4 GB
- Recommended
- LinuxBuz: "Four gigabytes of available RAM is a sensible starting point for a small vanilla server."
- Pine Hosting: "1-4 players, vanilla: 4GB. 4-8 players, established world or light mods: 6GB. 6-10 players, larger worlds or heavier mods: 8GB+."
Memory over time
- In use
- Peak, with cache
Pending
- 24 hours idle
- One player for 30 minutes
- Three warm restarts
Ports
| Port | Protocol | Use | Our server |
|---|---|---|---|
2456 | UDP | Game traffic. The -port value. | Open |
2457 | UDP | The -port value plus one. Forward it too. | Open |
Forward both UDP ports. With -crossplay: PlayFab relay, no forwarding.
Docker setup
4 steps
Download
Free anonymous download, Steam app 896660. +app_info_update 1 avoids a first-run SteamCMD 'Missing configuration' error.
docker run --rm -v /srv/games/valheim:/data steamcmd/steamcmd:latest \ +@sSteamCmdForcePlatformType linux +force_install_dir /data \ +login anonymous +app_info_update 1 +app_update 896660 validate +quitImage
Iron Gate's Dockerfile, in the download's docker folder. Installs the manual's three libraries.
cd /srv/games/valheim docker build -t valheim_server dockerRun
Exact bench command, minus the password. Add
-p2456-2457:2456-2457/udp to publish the ports;-crossplayfor console and Game Pass players.docker run -d --name valheim \ -v valheim_save:/root/.config/unity3d/IronGate/Valheim \ -v /srv/games/valheim:/irongate -w /irongate \ -e SteamAppId=892970 -e LD_LIBRARY_PATH=/irongate/linux64 \ valheim_server ./valheim_server.x86_64 -nographics -batchmode \ -name "My server" -port 2456 -world "Dedicated" -password "change-me" -public 1Ready line
Iron Gate's manual: ready at 'Game server connected'. Fresh world: 'Loading: Done' 41 seconds after container start.
docker logs -f valheim | grep -E "Game server connected|Loading: Done"
Settings
16 settings
Flags on the start command.
| Setting | What it does |
|---|---|
-name "My server" | Name in the server list. Must not contain the password. |
-port 2456 | First of two ports; the second is this plus one. |
-world "Dedicated" | World to load, or create if missing. |
-password "secret" | At least 5 characters. Not in the server name. |
-public 1 | 1 listed (default). 0 hidden; players use Join IP. |
-savedir PATH | Worlds plus admin, banned and permitted lists. Linux default: ~/.config/unity3d/IronGate/Valheim |
-saveinterval 1800 | Seconds between world saves. Default 1800 (30 minutes). |
-backups 4 | Automatic backups to keep. Default: one 2 hours old, three 12 hours apart. |
-backupshort 7200 | Seconds to the first automatic backup. Default 7200 (2 hours). |
-backuplong 43200 | Seconds between later backups. Default 43200 (12 hours). |
-crossplay | PlayFab backend; any platform can join. Without it, Steam only. |
-instanceid "1" | Unique value per server, for several on one port and machine. |
-preset hard | World modifier preset: Normal, Casual, Easy, Hard, Hardcore, Immersive or Hammer. Overrides earlier modifiers. |
-modifier raids none | One world modifier, such as combat, deathpenalty, resources, raids or portals. Goes after -preset. |
-setkey nomap | World modifier checkbox: nobuildcost, playerevents, passivemobs or nomap. |
-logFile PATH | Server log to a file. |
Troubleshooting
7 problems
- Server missing from the list
-public0 hides it; players use Join IP. With-public1, allow a few minutes for the list to update.- Nobody can join after a permittedlist.txt edit
- Any entry bans everyone not on the list (Iron Gate's manual). Add every player's ID, or empty the file.
- No connections from outside the network
- Forward UDP
-portand the next port (2456 and 2457 by default). Or-crossplay: PlayFab relay, no forwarding. - Crossplay server unreachable by local IP
- Expected; crossplay goes through the relay. Use the public IP and port, the join code or the server list.
- Server fails to start on older Linux
- Needs GLIBC 2.29 and GLIBCXX 3.4.26 or newer. Iron Gate suggests Docker, as above.
- World stops saving
- No save below about 204 MB free disk; warning below about 408 MB. Both limits logged at every save. Free space on the save folder's disk.
- World or progress lost after a crash
- Stop with Ctrl+C so it saves. Automatic backups sit beside the world files in the save folder.
Method
build 25527701
| Server | Valheim dedicated server, Steam build 25527701, downloaded 2026-10-05. |
|---|---|
| Image | Iron Gate's official Dockerfile (Ubuntu 22.04 with libatomic1, libpulse-dev, libpulse0), built from the server's own docker folder. |
| Machine | AMD Ryzen 9 5950X, Proxmox VE 9, each game server in Docker inside a dedicated LXC container. 8 GB memory limit, no swap. |
| Command | ./valheim_server.x86_64 -nographics -batchmode -name "gatergrid-lab" -port 2456 -world "Lab" -password (random) -public 0 |
Changes from defaults
- No
-crossplay. Official start script has it; routes traffic via Microsoft's PlayFab relay. -public0: kept off the public server list.- Random 12-character password.
Sources
- Valheim Dedicated Server Instruction Manual (ships with the server download)
- Iron Gate: A guide to dedicated servers