Initial commit
This commit is contained in:
1 parent
c0b02b09e5
commit
d2348fdf5e
4 files changed
+76
-80
No files matched your search
+34
-36
@@ -1,36 +1,34 @@
|
|||||||
FROM debian:12-slim
|
FROM debian:12-slim
|
||||||
|
|
||||||
ENV DEBIAN_FRONTEND=noninteractive
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
ENV STEAMCMDDIR=/opt/steamcmd
|
ENV STEAMCMDDIR=/opt/steamcmd
|
||||||
ENV VALHEIMDIR=/opt/valheim
|
ENV VALHEIMDIR=/opt/valheim
|
||||||
ENV BACKUPDIR=/backups
|
ENV BACKUPDIR=/backups
|
||||||
|
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
apt-get install -y --no-install-recommends \
|
apt-get install -y --no-install-recommends \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
curl \
|
curl \
|
||||||
wget \
|
wget \
|
||||||
unzip \
|
unzip \
|
||||||
tzdata \
|
tzdata \
|
||||||
lib32gcc-s1 \
|
lib32gcc-s1 \
|
||||||
lib32stdc++6 && \
|
lib32stdc++6 && \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# SteamCMD
|
RUN mkdir -p ${STEAMCMDDIR} ${VALHEIMDIR} ${BACKUPDIR} && \
|
||||||
RUN mkdir -p ${STEAMCMDDIR} ${VALHEIMDIR} ${BACKUPDIR} && \
|
cd ${STEAMCMDDIR} && \
|
||||||
cd ${STEAMCMDDIR} && \
|
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz && \
|
||||||
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz && \
|
tar -xzf steamcmd_linux.tar.gz && rm steamcmd_linux.tar.gz
|
||||||
tar -xzf steamcmd_linux.tar.gz && rm steamcmd_linux.tar.gz
|
|
||||||
|
COPY entrypoint.sh /entrypoint.sh
|
||||||
# Copy scripts
|
COPY backup.sh /backup.sh
|
||||||
COPY entrypoint.sh /entrypoint.sh
|
RUN chmod +x /entrypoint.sh /backup.sh
|
||||||
COPY backup.sh /backup.sh
|
|
||||||
RUN chmod +x /entrypoint.sh /backup.sh
|
WORKDIR ${VALHEIMDIR}
|
||||||
|
|
||||||
WORKDIR ${VALHEIMDIR}
|
EXPOSE 2456/udp 2457/udp 2458/udp
|
||||||
|
|
||||||
EXPOSE 2456/udp 2457/udp 2458/udp
|
VOLUME ["/config", "/backups"]
|
||||||
|
|
||||||
VOLUME ["/config", "/backups"]
|
ENTRYPOINT ["/entrypoint.sh"]
|
||||||
|
|
||||||
ENTRYPOINT ["/entrypoint.sh"]
|
|
||||||
@@ -1,13 +1 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bashset -euo pipefailWORLD_NAME="${WORLD_NAME:-Dedicated}"BACKUPDIR="${BACKUPDIR:-/backups}"ts=$(date +"%Y-%m-%d_%H-%M-%S")mkdir -p "${BACKUPDIR}"cp "/config/worlds_local/${WORLD_NAME}.db" "${BACKUPDIR}/${WORLD_NAME}_${ts}.db"cp "/config/worlds_local/${WORLD_NAME}.fwl" "${BACKUPDIR}/${WORLD_NAME}_${ts}.fwl"echo "Backup complete: ${BACKUPDIR}/${WORLD_NAME}_${ts}"
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
WORLD_NAME="${WORLD_NAME:-Dedicated}"
|
|
||||||
BACKUPDIR="${BACKUPDIR:-/backups}"
|
|
||||||
|
|
||||||
ts=$(date +"%Y-%m-%d_%H-%M-%S")
|
|
||||||
mkdir -p "${BACKUPDIR}"
|
|
||||||
|
|
||||||
cp "/config/worlds_local/${WORLD_NAME}.db" "${BACKUPDIR}/${WORLD_NAME}_${ts}.db"
|
|
||||||
cp "/config/worlds_local/${WORLD_NAME}.fwl" "${BACKUPDIR}/${WORLD_NAME}_${ts}.fwl"
|
|
||||||
|
|
||||||
echo "Backup complete: ${BACKUPDIR}/${WORLD_NAME}_${ts}"
|
|
||||||
+1
-18
@@ -1,18 +1 @@
|
|||||||
services:
|
services: valheim: image: valheim-managed:latest container_name: valheim restart: unless-stopped environment: SERVER_NAME: "Minisip Valheim" WORLD_NAME: "MinisipWorld" SERVER_PASSWORD: "changeme" PUBLIC: "1" TZ: "America/Moncton" volumes: - /mnt/tank/valheim/config:/config - /mnt/tank/valheim/backups:/backups ports: - "2456:2456/udp" - "2457:2457/udp" - "2458:2458/udp"
|
||||||
valheim:
|
|
||||||
image: valheim-managed:latest
|
|
||||||
container_name: valheim
|
|
||||||
restart: unless-stopped
|
|
||||||
environment:
|
|
||||||
SERVER_NAME: "Minisip Valheim"
|
|
||||||
WORLD_NAME: "MinisipWorld"
|
|
||||||
SERVER_PASSWORD: "changeme"
|
|
||||||
PUBLIC: "1"
|
|
||||||
TZ: "America/Moncton"
|
|
||||||
volumes:
|
|
||||||
- /mnt/tank/valheim/config:/config
|
|
||||||
- /mnt/tank/valheim/backups:/backups
|
|
||||||
ports:
|
|
||||||
- "2456:2456/udp"
|
|
||||||
- "2457:2457/udp"
|
|
||||||
- "2458:2458/udp"
|
|
||||||
+40
-13
@@ -1,10 +1,13 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
|
export TERM=xterm
|
||||||
|
|
||||||
STEAMCMDDIR="${STEAMCMDDIR:-/opt/steamcmd}"
|
STEAMCMDDIR="${STEAMCMDDIR:-/opt/steamcmd}"
|
||||||
VALHEIMDIR="${VALHEIMDIR:-/opt/valheim}"
|
VALHEIMDIR="${VALHEIMDIR:-/opt/valheim}"
|
||||||
BACKUPDIR="${BACKUPDIR:-/backups}"
|
BACKUPDIR="${BACKUPDIR:-/backups}"
|
||||||
BEPINEX_URL="${BEPINEX_URL:-https://thunderstore.io/package/download/BepInExPack_Valheim/latest.zip}"
|
|
||||||
|
BEPINEX_URL="${BEPINEX_URL:-https://cloud.theminisip.ca/index.php/s/K32Lnjc6TyWXaiN/download}"
|
||||||
|
|
||||||
SERVER_NAME="${SERVER_NAME:-Valheim Server}"
|
SERVER_NAME="${SERVER_NAME:-Valheim Server}"
|
||||||
WORLD_NAME="${WORLD_NAME:-Dedicated}"
|
WORLD_NAME="${WORLD_NAME:-Dedicated}"
|
||||||
@@ -12,35 +15,57 @@ SERVER_PASSWORD="${SERVER_PASSWORD:-changeme}"
|
|||||||
PUBLIC="${PUBLIC:-1}"
|
PUBLIC="${PUBLIC:-1}"
|
||||||
|
|
||||||
install_valheim() {
|
install_valheim() {
|
||||||
echo "[valheim] installing/updating via SteamCMD..."
|
echo "[valheim] installing/updating via SteamCMD (forced non-interactive)..."
|
||||||
"${STEAMCMDDIR}/steamcmd.sh" +login anonymous \
|
"${STEAMCMDDIR}/steamcmd.sh" \
|
||||||
+force_install_dir "${VALHEIMDIR}" \
|
+force_install_dir "${VALHEIMDIR}" \
|
||||||
|
+@sSteamCmdForcePlatformType linux \
|
||||||
|
+login anonymous \
|
||||||
+app_update 896660 validate \
|
+app_update 896660 validate \
|
||||||
+quit
|
+quit
|
||||||
}
|
}
|
||||||
|
|
||||||
install_bepinex() {
|
install_bepinex() {
|
||||||
if [ -f "${VALHEIMDIR}/start_server_bepinex.sh" ]; then
|
|
||||||
echo "[bepinex] already installed."
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "[bepinex] downloading pack..."
|
echo "[bepinex] downloading pack..."
|
||||||
curl -L "${BEPINEX_URL}" -o /tmp/bepinex.zip
|
curl -L "${BEPINEX_URL}" -o /tmp/bepinex.zip
|
||||||
|
|
||||||
|
echo "[bepinex] validating zip..."
|
||||||
|
if ! unzip -t /tmp/bepinex.zip >/dev/null 2>&1; then
|
||||||
|
echo "[bepinex] ERROR: Downloaded file is not a valid ZIP."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "[bepinex] extracting..."
|
||||||
|
rm -rf /tmp/bepinex
|
||||||
|
mkdir -p /tmp/bepinex
|
||||||
unzip -q /tmp/bepinex.zip -d /tmp/bepinex
|
unzip -q /tmp/bepinex.zip -d /tmp/bepinex
|
||||||
cp -r /tmp/bepinex/* "${VALHEIMDIR}/"
|
|
||||||
rm -rf /tmp/bepinex /tmp/bepinex.zip
|
# Folder confirmed by you
|
||||||
|
bep_root="/tmp/bepinex/BepInExPack_Valheim"
|
||||||
|
|
||||||
|
if [ ! -d "${bep_root}" ]; then
|
||||||
|
echo "[bepinex] ERROR: Expected folder BepInExPack_Valheim not found."
|
||||||
|
ls -R /tmp/bepinex
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "[bepinex] copying contents of ${bep_root} to ${VALHEIMDIR}"
|
||||||
|
cp -r "${bep_root}/"* "${VALHEIMDIR}/"
|
||||||
|
|
||||||
|
# Fix CRLF if present
|
||||||
|
sed -i 's/\r$//' "${VALHEIMDIR}/start_server_bepinex.sh"
|
||||||
|
|
||||||
|
# Ensure executable
|
||||||
|
chmod +x "${VALHEIMDIR}/start_server_bepinex.sh"
|
||||||
}
|
}
|
||||||
|
|
||||||
backup_world() {
|
backup_world() {
|
||||||
echo "[backup] backing up world..."
|
echo "[backup] backing up world..."
|
||||||
ts=$(date +"%Y-%m-%d_%H-%M-%S")
|
ts=$(date +"%Y-%m-%d_%H-%M-%S")
|
||||||
mkdir -p "${BACKUPDIR}"
|
mkdir -p "${BACKUPDIR}"
|
||||||
cp "/config/worlds_local/${WORLD_NAME}.db" "${BACKUPDIR}/${WORLD_NAME}_${ts}.db"
|
cp "/config/worlds_local/${WORLD_NAME}.db" "${BACKUPDIR}/${WORLD_NAME}_${ts}.db" || true
|
||||||
cp "/config/worlds_local/${WORLD_NAME}.fwl" "${BACKUPDIR}/${WORLD_NAME}_${ts}.fwl"
|
cp "/config/worlds_local/${WORLD_NAME}.fwl" "${BACKUPDIR}/${WORLD_NAME}_${ts}.fwl" || true
|
||||||
}
|
}
|
||||||
|
|
||||||
# Install/update
|
|
||||||
install_valheim
|
install_valheim
|
||||||
install_bepinex
|
install_bepinex
|
||||||
|
|
||||||
@@ -52,7 +77,9 @@ done &
|
|||||||
|
|
||||||
cd "${VALHEIMDIR}"
|
cd "${VALHEIMDIR}"
|
||||||
|
|
||||||
|
echo "[valheim] using password: ${SERVER_PASSWORD}"
|
||||||
echo "[valheim] starting server..."
|
echo "[valheim] starting server..."
|
||||||
|
|
||||||
exec ./start_server_bepinex.sh \
|
exec ./start_server_bepinex.sh \
|
||||||
-name "${SERVER_NAME}" \
|
-name "${SERVER_NAME}" \
|
||||||
-port 2456 \
|
-port 2456 \
|
||||||
|
|||||||
Reference in new issue
Block a user