ServerSizer

Games Valheim

Valheim server requirements

Build 25527701, 2026-10-05. Native Linux server. Steam SteamDB

Requirements

Our benchmarkIron GateLinuxBuzPine Hosting
CPU14% of one core, idle2 to 4 modern cores, per-core speed firstQuad-core, about 3 GHz+
RAM1.3 GB idle, 1.8 GB peak4 GB small, 4 to 6 GB for 5 to 10, 8 GB modded4 GB+ server, 8 GB system min, 16 GB+ rec
Disk2.1 GB installSSD, 10 to 20 GB basic, 30 to 60 GB moddedSSD or NVMe
NetworkUDP 2456 and 2457Ports 2456-2457, no forwarding with crossplay10 Mbps upload, 20+ Mbps near 10 players, ports 2456-2457Broadband, good upload
OSLinux, nativeWindows or Linux, glibc 2.29+Windows or Linux64-bit Windows

RAM by players

LinuxBuz
4 GB
Pine Hosting
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

0 GB1 GB2 GB3 GB1.8 GB0 h2 h4 h6 h8 h10 h12 h14 h0 GB1 GB2 GB3 GB1.8 GB0 h4 h8 h12 h
  • In use
  • Peak, with cache
Raw data (CSV)

Pending

  • 24 hours idle
  • One player for 30 minutes
  • Three warm restarts

Ports

PortProtocolUseOur server
2456UDPGame traffic. The -port value.Open
2457UDPThe -port value plus one. Forward it too.Open

Forward both UDP ports. With -crossplay: PlayFab relay, no forwarding.

Docker setup

4 steps
  1. 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 +quit
  2. Image

    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 docker
  3. Run

    Exact bench command, minus the password. Add -p 2456-2457:2456-2457/udp to publish the ports; -crossplay for 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 1
  4. Ready 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.

SettingWhat it does
-name "My server"Name in the server list. Must not contain the password.
-port 2456First 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 11 listed (default). 0 hidden; players use Join IP.
-savedir PATHWorlds plus admin, banned and permitted lists. Linux default: ~/.config/unity3d/IronGate/Valheim
-saveinterval 1800Seconds between world saves. Default 1800 (30 minutes).
-backups 4Automatic backups to keep. Default: one 2 hours old, three 12 hours apart.
-backupshort 7200Seconds to the first automatic backup. Default 7200 (2 hours).
-backuplong 43200Seconds between later backups. Default 43200 (12 hours).
-crossplayPlayFab backend; any platform can join. Without it, Steam only.
-instanceid "1"Unique value per server, for several on one port and machine.
-preset hardWorld modifier preset: Normal, Casual, Easy, Hard, Hardcore, Immersive or Hammer. Overrides earlier modifiers.
-modifier raids noneOne world modifier, such as combat, deathpenalty, resources, raids or portals. Goes after -preset.
-setkey nomapWorld modifier checkbox: nobuildcost, playerevents, passivemobs or nomap.
-logFile PATHServer log to a file.

Troubleshooting

7 problems
Server missing from the list
-public 0 hides it; players use Join IP. With -public 1, 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 -port and 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
ServerValheim dedicated server, Steam build 25527701, downloaded 2026-10-05.
ImageIron Gate's official Dockerfile (Ubuntu 22.04 with libatomic1, libpulse-dev, libpulse0), built from the server's own docker folder.
MachineAMD 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.
  • -public 0: kept off the public server list.
  • Random 12-character password.

Full method

Sources