FROM python:3.12-alpine

ARG MIHOMO_VERSION=1.19.3
ARG TARGETARCH

RUN apk add --no-cache ca-certificates curl gzip \
    && arch="${TARGETARCH:-amd64}" \
    && case "$arch" in \
         amd64|x86_64) mihomo_arch=amd64 ;; \
         arm64|aarch64) mihomo_arch=arm64 ;; \
         *) mihomo_arch=amd64 ;; \
       esac \
    && curl -fsSL \
         "https://github.com/MetaCubeX/mihomo/releases/download/v${MIHOMO_VERSION}/mihomo-linux-${mihomo_arch}-compatible-v${MIHOMO_VERSION}.gz" \
         -o /tmp/mihomo.gz \
    && gunzip -c /tmp/mihomo.gz > /usr/local/bin/mihomo \
    && chmod +x /usr/local/bin/mihomo \
    && rm -f /tmp/mihomo.gz \
    && mkdir -p /etc/mihomo/providers

WORKDIR /app
COPY controller.py /app/controller.py

ENV MIHOMO_BIN=/usr/local/bin/mihomo \
    MIHOMO_CONFIG_DIR=/etc/mihomo \
    VPN_SOCKS_PORT=1080 \
    VPN_POLL_SECONDS=15

EXPOSE 1080

CMD ["python", "-u", "/app/controller.py"]
