FROM python:3.14-alpine WORKDIR /app VOLUME [ "/data", "/etc/letsencrypt" ] ENV HTTP_PORT=80 ENV HTTPS_PORT=443 ENV HOST=localhost ENV DATA_DIR=/data ENV MAX_SIZE=2000000 ENV BIND=0.0.0.0 ENV CERTBOT_CONF=/etc/letsencrypt ENV CERTBOT_WWW=/data/.certbot ENV SELF_SIGNED_PATH=/data/.certificates RUN apk add --no-cache \ openssl \ certbot RUN PIP_ROOT_USER_ACTION=ignore python3 -m pip install uv COPY uv.lock pyproject.toml ./ RUN uv pip install -r pyproject.toml --system COPY main.py favicon.ico ./ COPY src/* ./src/ ENTRYPOINT [ "/app/main.py"]