Initial Valheim dedicated server container with web UI scaffold
This commit is contained in:
+43
@@ -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"]
|
||||
@@ -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
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user