FROM --platform=$BUILDPLATFORM debian:bookworm-slim AS builder

ARG TARGETARCH

RUN apt-get update && apt-get install -y \
    git curl make gcc libssl-dev zlib1g-dev \
    && rm -rf /var/lib/apt/lists/*

RUN if [ "$(dpkg --print-architecture)" != "$TARGETARCH" ]; then \
      dpkg --add-architecture $TARGETARCH && \
      apt-get update && \
      case "$TARGETARCH" in \
        arm64) apt-get install -y gcc-aarch64-linux-gnu libssl-dev:arm64 zlib1g-dev:arm64 ;; \
        amd64) apt-get install -y gcc-x86-64-linux-gnu libssl-dev:amd64 zlib1g-dev:amd64 ;; \
      esac && \
      rm -rf /var/lib/apt/lists/*; \
    fi

RUN git clone https://github.com/TelegramMessenger/MTProxy.git /src
WORKDIR /src

RUN NATIVE=$(dpkg --print-architecture) && \
    if [ "$NATIVE" != "$TARGETARCH" ]; then \
      case "$TARGETARCH" in \
        arm64) export CC=aarch64-linux-gnu-gcc ;; \
        amd64) export CC=x86_64-linux-gnu-gcc ;; \
      esac; \
    fi && \
    make -j$(nproc)

FROM debian:bookworm-slim

ENV PROXY_PORT=30443
ENV STATS_PORT=8888
ENV WORKERS=1
ENV RUN_USER=nobody

RUN apt-get update && apt-get install -y \
    curl libssl3 zlib1g xxd \
    && rm -rf /var/lib/apt/lists/*

COPY --from=builder /src/objs/bin/mtproto-proxy /usr/local/bin/mtproto-proxy

RUN curl -s https://core.telegram.org/getProxySecret -o /etc/mtproxy/proxy-secret --create-dirs && \
    curl -s https://core.telegram.org/getProxyConfig -o /etc/mtproxy/proxy-multi.conf

ENTRYPOINT mtproto-proxy \
    -u ${RUN_USER} \
    -p ${STATS_PORT} \
    -H ${PROXY_PORT} \
    -M ${WORKERS} \
    --aes-pwd /etc/mtproxy/proxy-secret \
    /etc/mtproxy/proxy-multi.conf
