Repository navigation
Releases: MrGuato/valheim-game-server
Release list
v2.1.0: Ubuntu 26.04, one package
The first release on Ubuntu 26.04, with one package name and a cleaner image.
Changed
- Base image is Ubuntu 26.04 LTS (was 22.04). The default
ubuntuuser those images ship on UID 1000 is removed sovalheimkeeps that id. Tested against a copy of a live world before release: SteamCMD validation, world load, save on stop. Nothing changes for the host: any Linux with Docker 24+ runs it. - The build applies Ubuntu's pending package updates, so each release carries current security fixes instead of the base image's snapshot.
- GitHub Actions bumped (checkout 7, login-action 4, metadata-action 6, build-push-action 7, setup-buildx-action 4, codeql-action 4). The README shows the container's pull count.
Removed
- The pre-2.0 package
ghcr.io/mrguato/valheim_game_serverhas been deleted. Onlyghcr.io/mrguato/valheim-game-serverexists. If your.envstill names the old one, setIMAGE_REPOSITORY=ghcr.io/mrguato/valheim-game-serverand run./valheim update. - The unused
pebblebinary the 26.04 base image ships; Trivy flagged fourteen Go CVEs in it.
Security
.trivyignorerecords that starting as root is deliberate (volume ownership, then gosu to PUID/PGID), so that finding stays closed. All Trivy and CodeQL alerts on the repo are resolved.
Upgrading from 2.0.0
Nothing to change if you follow latest: Watchtower or ./valheim update picks it up and the server restarts once (it saves first). If you pin, set IMAGE_TAG=2.1.0 and run ./valheim update.
Docs: https://mrguato.github.io/valheim-game-server/ · Image: ghcr.io/mrguato/valheim-game-server:2.1.0 (also 2.1, latest)
Full changelog: v2.0.0...v2.1.0
v2.0.0: own image, one CLI, a new name
Update (2026-10-24): the old package
ghcr.io/mrguato/valheim_game_serverhas since been deleted. Useghcr.io/mrguato/valheim-game-server; see v2.1.0.
A year after 1.0, the project has its own container image and is now called valheim-game-server.
Added
- Own container image
ghcr.io/mrguato/valheim-game-server: Ubuntu 22.04 + SteamCMD, game files installed and validated on every start. ./valheimCLI:setupwizard,start,stop,restart,status,logs,update,backup,restore,shell,build. AMakefilewraps it.- Runs as an unprivileged user by default (
PUID/PGID, 1000), and fixes volume ownership and Valheim 1.0 world-folder permissions on start. - Graceful shutdown that waits for the world save (
STOP_TIMEOUT, default 120 s). - Up-front checks for Valheim's password rules and world names.
- Game settings from
.env:SERVER_PRESET,SERVER_MODIFIERS,SERVER_SETKEYS,SAVE_INTERVAL, Valheim's own backup settings,SERVER_ARGS. - Crossplay (
CROSSPLAY=true). - Opt-in BepInEx (
BEPINEX=true): the pack is pinned and checksummed in the image, and plugins go inconfig/bepinex/plugins/. scripts/backup.shandscripts/restore.sh: verified tarballs with retention.- Documentation site at https://mrguato.github.io/valheim-game-server/, including pages on mods, the Longhouse dashboard and security.
- Security workflow: gitleaks plus Trivy config and image scans. Added alongside hadolint, shellcheck, CodeQL and Dependabot.
- MIT license, security policy and a changelog.
Changed
- Renamed the repository from
Valheim_Game_Servertovalheim-game-server. GitHub redirects the old URLs, but the docs site moved to/valheim-game-server/. - The default image is now
ghcr.io/mrguato/valheim-game-server. The old nameghcr.io/mrguato/valheim_game_serveris still published with the same tags, so existing installs keep updating. - Watchtower runs once a day at 05:00 (it was hourly) and only updates labeled containers.
Removed
- The self-hosted GitHub Actions runner and its deploy workflow. Updates come from Watchtower or
git pull && ./valheim update, so GitHub never needs access to the host. - The old standalone
index.htmlpage, replaced by the docs site.
Upgrading from 1.x
./valheim backup(or copyconfig/somewhere safe).git pull. If your clone points at the old URL it still works; to update it, rungit remote set-url origin https://github.com/MrGuato/valheim-game-server.git.- Optionally set
IMAGE_REPOSITORY=ghcr.io/mrguato/valheim-game-serverin.env. The old name keeps working. ./valheim update.
Docs: https://mrguato.github.io/valheim-game-server/ · Image: ghcr.io/mrguato/valheim-game-server:2.0.0
Full changelog: v1.0...v2.0.0
Valheim Docker Server v1.0 — Automated & Secure
Valheim Docker Server v1.0 — Automated & Secure
Release Date: 2025-09-03
This is the first official release of the Valheim Docker Server project — a secure, automated, and reproducible way to host a Valheim world using Infrastructure as Code (IaC).
✨ Highlights
- Infrastructure as Code - Docker Compose for clean, portable deployments
- Security by Default
- .env excluded from Git
- UniFi firewall/IP restrictions supported
- GitHub Actions Secrets for credentials
- Automated Updates - Watchtower keeps containers patched on a fixed schedule (default: daily at 05:00)
- Resilient Backups - Cron-based backups with configurable retention
- CI/CD Workflow - GitHub Actions pipeline for deployment and validation
- Monitoring & Scanning - Snyk for vulnerability management.
🎯 Why This Release Matters
This release is more than just a Valheim server. It’s a DevSecOps case study that demonstrates how to:
- Run internet-facing workloads securely
- Apply automation and CI/CD to game hosting
- Show off a portfolio-ready project blending DevOps and security engineering
- Provide a template others can adapt for Valheim or any containerized service
🛠️ Getting Started
Clone the repository:
git clone git@github.com:MrGuato/Valheim_Game_Server.git ~/gameserver
cd ~/gameserver
Configure environment variables:
cp .env.example .env
Deploy the server:
docker compose up -d
🔮 What’s Next
- Optional mod support and monitoring integrations
- Additional IaC security checks (Trivy, OPA policies)
- Community contributions and refinements
🔐 Security Note
This repository contains infrastructure code only. Game files, secrets, and backups remain private and are never committed.