FROM debian:bookworm-slim

ARG SNAPCAST_VERSION=0.35.0
ARG TARGETARCH

# Resolve Debian arch name from Docker arch
RUN case "${TARGETARCH}" in \
    amd64)  ARCH=amd64  ;; \
    arm64)  ARCH=arm64  ;; \
    arm)    ARCH=armhf  ;; \
    *)      echo "Unsupported arch: ${TARGETARCH}" && exit 1 ;; \
    esac \
    && apt-get update \
    && apt-get install -y --no-install-recommends curl ca-certificates gettext-base \
    && curl -fLO "https://github.com/badaix/snapcast/releases/download/v${SNAPCAST_VERSION}/snapserver_${SNAPCAST_VERSION}-1_${ARCH}_bookworm.deb" \
    && apt-get install -y --no-install-recommends ./snapserver_*.deb \
    && rm -f snapserver_*.deb \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

EXPOSE 1704 1705 1780

HEALTHCHECK --interval=15s --timeout=5s --start-period=10s \
    CMD curl -fsS http://localhost:1780/jsonrpc \
        -H 'Content-Type: application/json' \
        -d '{"jsonrpc":"2.0","method":"Server.GetStatus","id":1}' \
        | grep -q '"id":1' || exit 1

CMD ["snapserver", "--config", "/tmp/snapserver.conf"]
