This container lets you run a Valheim server on a Raspberry Pi.
100K+
Minimum Requirements:
Important for Pi5-Users! Due to a different pagesize (16k vs. 4k), the container won't work with the Pi5 out of the box until box86/64 accounts for the increased pagesize. Until then, you'll have to set it back to 4k by adding "kernel=kernel8.img" to /boot/firmware/config.txt and reboot. In full:
sudo echo "kernel=kernel8.img" >> /boot/firmware/config.txt && sudo reboot
---16.5.2024
Docker run
docker run -d \
--name raspiheim \
--hostname raspiheim \
-p 2456:2456/udp \
-p 2457:2457/udp \
-e SERVER_NAME=Raspiheim \
-e WORLD_NAME=Raspiworld \
-e SERVER_PASS=Raspipass \
-e PUBLIC=disabled \
-e UPDATE=enabled \
-e PAUSE=disabled \
-v /path/to/valheim/data:/data \
-v /path/to/valheim/server:/valheim \
--restart=unless-stopped \
arokan/raspiheim:latest
Docker-Compose
version: "3"
services:
raspiheim:
image: arokan/raspiheim:latest
container_name: raspiheim
environment:
- SERVER_NAME=Raspiheim
- SERVER_PASS=Raspipass
- WORLD_NAME=Raspiworld
- PUBLIC=disabled
- CROSSPLAY=disabled
- UPDATE=enabled
- SAVE_INTERVAL=1800
- BOX86=default #default,latest,version-number
- BOX64=default #default,latest,version-number
- NO_BUILD_COST=disabled
- PLAYER_EVENTS=disabled
- PASSIVE_MOBS=disabled
- NO_MAP=disabled
# - PRESET=normal #normal,casual,easy,hard,hardcore,immersive,hammer
# - MODIFIER_COMBAT= #veryeasy,easy,hard,veryhard
# - MODIFIER_DEATHPENATLY= #casual,veryeasy,easy,hard,hardcore
# - MODIFIER_RESOURCES= #muchless,less,more,muchmore,most
# - MODIFIER_RAIDS= #none,muchless,less,more,muchmore
# - MODIFIER_PORTALS= #casual,hard,veryhard
ports:
- "2456:2456/udp"
- "2457:2457/udp"
volumes:
- "/path/to/valheim/data:/data"
- "/path/to/valheim/server:/valheim"
restart: unless-stopped
Variables
Behaviour
To keep the container slim, Valheim will be downloaded when the container is started and no persistence has been set. If persistence is set and Valheim is downloaded, it will update when the variable is set to true.
The container may take up to 2.4GB of RAM, although running a while, 2GB will be written to the SWAP and back to RAM again when required, which is why at least 2GB of SWAP is recommended. ZRAM works wonders; almost all data will be written to it and only necessary assets will be loaded back to RAM. Starting the server takes about 5-15 (Raspi5) minutes each time, so be patient! It takes even a little longer to build a world rather than loading an existing one.
Place your Save-Worlds in /path/to/valheim/data/worlds_local/
Known Issues: Common:
Rare or allegedly fixed:
Sometimes the server appears to crash when two or more people are logged in and one logs out. Doesn't appear to be the case if only one is connected. Issue is being looked into.
Discovering new biomes can lead to them not correctly loading. A simple restart will do the trick.
Enabling the Pause-Feature can cause the server to shutdown when the CPU-workload is at max. even though somebody is still connected.
Aspirations: I've been requested to implement BepInEx-Support several times now and tried to do so, but as of now a certain library is causing trouble to BOX64.
Changelog
1.3.1: Added modification to /etc/box64.box64rc -> Fixed issues with saving-lag and disconnect. The server runs smooth as butter now!
1.3: Brought back full functionality. - Boot-time seems to be significantly increased while online performance has improved. - Crossplay enabled. - Further server-settings enabled. - removed true/false flags. enabled/disabled and 1/0 will work universally. - As versioning of box86/64 has caused the most trouble throughout the lifetime of this container, I implemented a way to choose the version specifically. This way it's easier for the user to fix the issue by oneself in case I don't have the time to update the container (which will mostly be the case).
1.2: Added feature to pause the server when no player is connected. It is resumed once somebody tries to connect. Logs will be saved in /data/logs.
1.1: Fixed steamcmd not being able to update/download the server software due to an incompatibility between the updated steamcmd-version and the installed box86-version. An update for box86 to v.0.2.5 fixed the issue.
Acknowledgements
This container uses Box86 to use steamcmd and Box64 to start the server. Big thanks to PiLabs for this amazing piece of software. Please consider supporting them by checking out their YouTube-Channel: https://www.youtube.com/channel/UCgfQjdc5RceRlTGfuthBs7g
Thanks to slipperman1 for encouraging me to build the pause-feature and providing some inspiration and advise on how to implement it!
If you found this container useful, encounter any bugs or find it not to be working at all, feel free to message me! (Discord: arokan13)
Content type
Image
Digest
sha256:a45e8386d…
Size
245 MB
Last updated
almost 2 years ago
docker pull arokan/raspiheim