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"]
