| FROM debian:bookworm-slim | |
| ENV DEBIAN_FRONTEND=noninteractive | |
| # Install dependencies and nginx | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| curl \ | |
| ca-certificates \ | |
| python3 \ | |
| git \ | |
| nginx \ | |
| && rm -rf /var/lib/apt/lists/* \ | |
| && chmod -R 777 /var/log/nginx /var/lib/nginx /run | |
| # Install sing-box | |
| RUN set -eu \ | |
| && arch="$(dpkg --print-architecture)" \ | |
| && case "$arch" in \ | |
| amd64|x86_64) SINGBOX_URL="https://github.com/SagerNet/sing-box/releases/download/v1.13.14/sing-box-1.13.14-linux-amd64.tar.gz" ;; \ | |
| arm64|aarch64) SINGBOX_URL="https://github.com/SagerNet/sing-box/releases/download/v1.13.14/sing-box-1.13.14-linux-arm64.tar.gz" ;; \ | |
| *) echo "Unsupported architecture" >&2; exit 1 ;; \ | |
| esac \ | |
| && curl -fsSL "$SINGBOX_URL" -o /tmp/singbox.tar.gz \ | |
| && tar -xzf /tmp/singbox.tar.gz -C /tmp \ | |
| && mv /tmp/sing-box-1.13.14-linux-*/sing-box /usr/local/bin/sing-box \ | |
| && chmod +x /usr/local/bin/sing-box \ | |
| && rm -rf /tmp/singbox* /tmp/sing-box* | |
| WORKDIR /app | |
| COPY app.py dashboard.html users.json settings.json nginx.conf ./ | |
| # Copy nginx config to system location | |
| RUN cp nginx.conf /etc/nginx/nginx.conf | |
| ENV PYTHONUNBUFFERED=1 | |
| EXPOSE 7860 | |
| CMD ["sh", "-c", "nginx && python3 app.py"] | |