feat: update Valheim deployment playbook to include WebMap installation and configuration

This commit is contained in:
martin.fencl
2026-10-19 14:35:32 +02:00
parent f5bfcb0f31
commit 938cdd7db3
2 changed files with 177 additions and 112 deletions
+5 -27
View File
@@ -1,43 +1,32 @@
# Portainer stack name: valheim
# Target: pve2_vm / vm-portainer-services
# Create the host directories and password file before the first deployment.
# Configuration lives here; the password is NOT stored in Git or Portainer ENV.
# The game service, data paths, secrets, backups and UDP ports are unchanged.
name: valheim
services:
valheim:
image: ghcr.io/community-valheim-tools/valheim-server:latest
container_name: valheim
restart: unless-stopped
stop_grace_period: 2m
cap_add:
- SYS_NICE
ports:
- "2456-2457:2456-2457/udp"
# Host TCP 8095 -> ValheimWebMap internal TCP 3696.
# This is an unauthenticated map; restrict ingress via firewall/proxy.
- "8095:3696/tcp"
environment:
TZ: "Europe/Prague"
# The game process uses these numeric IDs, not the bootstrap process.
# They need not be the host login user's IDs.
PUID: "1000"
PGID: "1000"
SERVER_NAME: "Fencl Valheim"
WORLD_NAME: "Fenheilm"
SERVER_PORT: "2456"
SERVER_PUBLIC: "false"
CROSSPLAY: "false"
SERVER_PASS_FILE: "/run/secrets/valheim_server_pass"
# No periodic game updates/restarts inside the container.
# A container start still checks/downloads the game through SteamCMD.
# Run update_valheim.yml in your chosen maintenance window.
UPDATE_CRON: ""
RESTART_CRON: ""
# Built-in world backups, hourly at minute 05, retained for 7 days.
BACKUPS: "true"
BACKUPS_CRON: "5 * * * *"
BACKUPS_DIRECTORY: "/config/backups"
@@ -45,13 +34,10 @@ services:
BACKUPS_MAX_COUNT: "168"
BACKUPS_IF_IDLE: "true"
BACKUPS_ZIP: "true"
VALHEIM_PLUS: "false"
BEPINEX: "false"
# Do not publish 9001: the Portainer agent already uses it on this VM.
BEPINEX: "true"
SUPERVISOR_HTTP: "false"
STATUS_HTTP: "false"
volumes:
- type: bind
source: /data/compose/valheim/config
@@ -74,10 +60,6 @@ services:
read_only: true
bind:
create_host_path: false
# Local readiness: supervised game process AND an open game/query UDP socket.
# This does not test the router/firewall or an actual player connection.
# The helpers ship in this image and also support non-public servers.
healthcheck:
test:
- CMD
@@ -91,15 +73,11 @@ services:
timeout: 10s
retries: 5
start_period: 30m
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
# Docker allocates this bridge network's subnet and the container address.
# Clients use the VM's LAN/public address and UDP port 2456, not this private IP.
networks:
default:
driver: bridge