FROM debian:12-slim

ENV DEBIAN_FRONTEND=noninteractive
ENV STEAMCMDDIR=/opt/steamcmd
ENV VALHEIMDIR=/opt/valheim
ENV BACKUPDIR=/backups

RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        ca-certificates \
        curl \
        wget \
        unzip \
        tzdata \
        lib32gcc-s1 \
        lib32stdc++6 && \
    rm -rf /var/lib/apt/lists/*

# Create directories and install SteamCMD
RUN mkdir -p "${STEAMCMDDIR}" "${VALHEIMDIR}" "${BACKUPDIR}" && \
    cd "${STEAMCMDDIR}" && \
    wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz && \
    tar -xzf steamcmd_linux.tar.gz && rm steamcmd_linux.tar.gz

# Set working directory BEFORE copying scripts
WORKDIR ${VALHEIMDIR}

# Copy scripts
COPY entrypoint.sh /entrypoint.sh
COPY backup.sh /backup.sh
RUN chmod +x /entrypoint.sh /backup.sh

# Copy managed wrapper into the correct directory
COPY start_server_managed.sh ./start_server_managed.sh
RUN chmod +x ./start_server_managed.sh

EXPOSE 2456/udp 2457/udp 2458/udp

VOLUME ["/config", "/backups"]

ENTRYPOINT ["/entrypoint.sh"]
