Initial Valheim dedicated server container with web UI scaffold

This commit is contained in:
2026-06-08 12:35:42 -03:00
commit 6143880ff3
4 changed files with 97 additions and 0 deletions
+43
View File
@@ -0,0 +1,43 @@
FROM debian:12-slim
ENV DEBIAN_FRONTEND=noninteractive
ENV VALHEIM_SERVER_DIR=/opt/valheim
ENV STEAMCMD_DIR=/opt/steamcmd
ENV USER=valheim
RUN apt-get update && \
apt-get install -y --no-install-recommends \
ca-certificates \
curl \
wget \
jq \
lib32gcc-s1 \
tini \
procps \
iproute2 && \
rm -rf /var/lib/apt/lists/*
# Create user
RUN useradd -m -d /home/${USER} -s /bin/bash ${USER}
# Create directories
RUN mkdir -p ${VALHEIM_SERVER_DIR} ${STEAMCMD_DIR}
RUN chown -R ${USER}:${USER} /opt /home/${USER}
USER ${USER}
# Install SteamCMD
RUN cd ${STEAMCMD_DIR} && \
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz && \
tar -xvzf steamcmd_linux.tar.gz && \
rm steamcmd_linux.tar.gz
# Copy entrypoint
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
EXPOSE 2456/udp 2457/udp 2458/udp
EXPOSE 8080
ENTRYPOINT ["/usr/bin/tini", "--"]
CMD ["/entrypoint.sh"]
+29
View File
@@ -0,0 +1,29 @@
version: "3.9"
services:
valheim:
build: .
container_name: valheim
restart: unless-stopped
environment:
SERVER_NAME: "${SERVER_NAME}"
WORLD_NAME: "${WORLD_NAME}"
SERVER_PASSWORD: "${SERVER_PASSWORD}"
ports:
- "2456:2456/udp"
- "2457:2457/udp"
- "2458:2458/udp"
- "8080:8080"
volumes:
- valheim_data:/opt/valheim
- valheim_config:/home/valheim/.config/unity3d/IronGate/Valheim
networks:
- valheim_net
volumes:
valheim_data:
valheim_config:
networks:
valheim_net:
driver: bridge
+25
View File
@@ -0,0 +1,25 @@
#!/bin/bash
set -e
VALHEIM_SERVER_DIR=${VALHEIM_SERVER_DIR:-/opt/valheim}
STEAMCMD_DIR=${STEAMCMD_DIR:-/opt/steamcmd}
echo "=== Updating Valheim Dedicated Server via SteamCMD ==="
${STEAMCMD_DIR}/steamcmd.sh +login anonymous \
+force_install_dir ${VALHEIM_SERVER_DIR} \
+app_update 896660 validate \
+quit
echo "=== Starting Web Management Interface ==="
# Placeholder — you will replace with your actual web UI
python3 /opt/webui/server.py &
echo "=== Starting Valheim Server ==="
cd ${VALHEIM_SERVER_DIR}
./valheim_server.x86_64 \
-name "${SERVER_NAME}" \
-port 2456 \
-world "${WORLD_NAME}" \
-password "${SERVER_PASSWORD}" \
-public 1
View File