services: valheim: image: ghcr.io/lloesche/valheim-server container_name: valheim-server cap_add: - sys_nice ports: - "2456-2457:2456-2457/udp" environment: SERVER_NAME: "My Valheim Server" SERVER_PASS: "atleast5chars" WORLD_NAME: "MyWorld" SERVER_PUBLIC: "false" TZ: "America/New_York" UPDATE_CRON: "*/15 * * * *" UPDATE_IF_IDLE: "true" RESTART_CRON: "0 5 * * *" RESTART_IF_IDLE: "true" BACKUPS: "true" BACKUPS_CRON: "0 * * * *" BACKUPS_ZIP: "true" BACKUPS_MAX_AGE: "3" volumes: - ./valheim-config:/config - ./valheim-data:/opt/valheim restart: unless-stopped stop_grace_period: 120s
services: valheim: image: ghcr.io/lloesche/valheim-server container_name: valheim-server cap_add: - sys_nice ports: - "2456-2457:2456-2457/udp" environment: SERVER_NAME: "My Valheim Server" SERVER_PASS: "atleast5chars" WORLD_NAME: "MyWorld" SERVER_PUBLIC: "false" TZ: "America/New_York" UPDATE_CRON: "*/15 * * * *" UPDATE_IF_IDLE: "true" RESTART_CRON: "0 5 * * *" RESTART_IF_IDLE: "true" BACKUPS: "true" BACKUPS_CRON: "0 * * * *" BACKUPS_ZIP: "true" BACKUPS_MAX_AGE: "3" volumes: - ./valheim-config:/config - ./valheim-data:/opt/valheim restart: unless-stopped stop_grace_period: 120s
services: valheim: image: ghcr.io/lloesche/valheim-server container_name: valheim-server cap_add: - sys_nice ports: - "2456-2457:2456-2457/udp" environment: SERVER_NAME: "My Valheim Server" SERVER_PASS: "atleast5chars" WORLD_NAME: "MyWorld" SERVER_PUBLIC: "false" TZ: "America/New_York" UPDATE_CRON: "*/15 * * * *" UPDATE_IF_IDLE: "true" RESTART_CRON: "0 5 * * *" RESTART_IF_IDLE: "true" BACKUPS: "true" BACKUPS_CRON: "0 * * * *" BACKUPS_ZIP: "true" BACKUPS_MAX_AGE: "3" volumes: - ./valheim-config:/config - ./valheim-data:/opt/valheim restart: unless-stopped stop_grace_period: 120s
docker compose up -d
docker compose up -d
docker compose up -d
docker compose logs -f valheim
docker compose logs -f valheim
docker compose logs -f valheim
docker compose down
cd valheim-config/backups/
# Unzip the desired backup
unzip backup-YYYYMMDD-HHMMSS.zip -d ../worlds_local/
docker compose up -d
docker compose down
cd valheim-config/backups/
# Unzip the desired backup
unzip backup-YYYYMMDD-HHMMSS.zip -d ../worlds_local/
docker compose up -d
docker compose down
cd valheim-config/backups/
# Unzip the desired backup
unzip backup-YYYYMMDD-HHMMSS.zip -d ../worlds_local/
docker compose up -d
environment: SERVER_ARGS: "-crossplay"
environment: SERVER_ARGS: "-crossplay"
environment: SERVER_ARGS: "-crossplay"
ports: - "2456-2458:2456-2458/udp"
ports: - "2456-2458:2456-2458/udp"
ports: - "2456-2458:2456-2458/udp"
environment: ADMINLIST_IDS: "76561198012345678 76561198087654321"
environment: ADMINLIST_IDS: "76561198012345678 76561198087654321"
environment: ADMINLIST_IDS: "76561198012345678 76561198087654321"
environment: BANNEDLIST_IDS: "76561198099999999"
environment: BANNEDLIST_IDS: "76561198099999999"
environment: BANNEDLIST_IDS: "76561198099999999"
environment: PERMITTEDLIST_IDS: "76561198012345678 76561198087654321"
environment: PERMITTEDLIST_IDS: "76561198012345678 76561198087654321"
environment: PERMITTEDLIST_IDS: "76561198012345678 76561198087654321"
environment: BEPINEX: "true"
environment: BEPINEX: "true"
environment: BEPINEX: "true"
cp my-valheim-mod.dll ./valheim-config/bepinex/plugins/
docker compose restart valheim
cp my-valheim-mod.dll ./valheim-config/bepinex/plugins/
docker compose restart valheim
cp my-valheim-mod.dll ./valheim-config/bepinex/plugins/
docker compose restart valheim - A Linux server (Ubuntu 22.04+ recommended) with Docker and Docker Compose installed
- 4 GB of RAM minimum (8 GB recommended)
- 2+ CPU cores — clock speed matters more than core count for Valheim
- 5 GB of free disk space (plus world save growth over time)
- UDP ports 2456-2457 open on your firewall or router (port forwarding guide) - Click Join Game → Add Server
- Enter your-server-ip:2456
- Enter the password you set in SERVER_PASS - Wait 10-15 minutes after startup — Steam registration can be slow
- Verify UDP ports 2456-2457 are forwarded and reachable
- Connect directly by IP (your-ip:2456) instead of using the browser
- Check docker compose logs valheim for Steam registration errors - Ensure SERVER_PASS is at least 5 characters
- Check server RAM usage — Valheim needs 4+ GB free
- Verify the host's network is stable (packet loss causes disconnects)
- If using crossplay, ensure port 2458/udp is also forwarded - Check that WORLD_NAME matches exactly (case-sensitive)
- Verify ./valheim-config/worlds_local/ contains your .db and .fwl files
- Restore from the latest backup in ./valheim-config/backups/
- Never use docker compose down -v — this deletes volumes and world data - Minecraft vs Valheim Server: Which to Self-Host?
- How to Self-Host a Minecraft Server
- Best Self-Hosted Game Servers
- Pterodactyl vs Crafty Controller
- Docker Compose Basics
- Port Forwarding Guide
- Tailscale Setup
- Backup Strategy