FROM debian:bookworm-slim

ENV USERNAME=archipelago
ENV HOMEDIR=/home/${USERNAME}
ENV SERVERDIR=${HOMEDIR}/server
ENV SAVEDIR=${HOMEDIR}/saves
ENV TMPDIR=${HOMEDIR}/tmp
ENV SERVERVERSION="0.6.7"

# Download Server
ADD https://github.com/ArchipelagoMW/Archipelago/releases/download/${SERVERVERSION}/Archipelago_${SERVERVERSION}_linux-x86_64.tar.gz ${TMPDIR}/Archipelago.tar.gz

# Install dependencies, unpack server and clear tmp files
RUN set -x \
    && apt-get update \
    && apt-get install -y --no-install-recommends --no-install-suggests \
    p7zip-full \
    && cd ${TMPDIR} \
    && 7z x Archipelago.tar.gz \
    && 7z x *.tar \
    && mkdir ${SERVERDIR} \
    && mkdir ${SAVEDIR} \
    && mv Archipelago/ArchipelagoServer ${SERVERDIR} \
    && mv Archipelago/lib ${SERVERDIR} \
    && chmod +x ${SERVERDIR}/ArchipelagoServer \
    && rm -rf ./* \
    && apt-get remove --purge -y \
    p7zip-full \
    && apt-get clean autoclean \
    && apt-get autoremove -y \
    && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

WORKDIR $SERVERDIR

COPY start_server.sh .

RUN set -x \
    && chmod +x ./start_server.sh

CMD [ "./start_server.sh" ]

# required env vars
# SERVERPASSWORD
