FROM python:3.13-slim
ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1
RUN apt-get update && apt-get install -y --no-install-recommends fonts-dejavu-core && rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY requirements.txt requirements-production.txt ./
RUN pip install --no-cache-dir -r requirements-production.txt && useradd --uid 10001 --no-create-home app
COPY server.py production.py app.js editor.js index.html about.html style.css logo.png source.zip LICENSE THIRD_PARTY.md ./
USER 10001:10001
EXPOSE 8000
CMD ["gunicorn", "--bind", "0.0.0.0:8000", "--workers", "2", "--worker-class", "sync", "--timeout", "60", "--graceful-timeout", "65", "--max-requests", "250", "--max-requests-jitter", "50", "--worker-tmp-dir", "/dev/shm", "--limit-request-line", "4094", "production:application"]
