Python 64.6%
TypeScript 33.7%
CSS 0.8%
1# ---- frontend build2FROM node:22-alpine AS web3WORKDIR /web4COPY frontend/package*.json ./5RUN npm ci --no-audit --no-fund6COPY frontend/ ./7RUN npm run build89# ---- api10FROM python:3.12-slim AS api11ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=112WORKDIR /srv13COPY backend/pyproject.toml ./14COPY backend/app ./app15COPY backend/scripts ./scripts16RUN pip install --no-cache-dir . && useradd -u 10001 -m app && mkdir -p /data && chown app /data17COPY --from=web /web/dist /srv/frontend/dist18ENV FRONTEND_DIST=/srv/frontend/dist DATA_DIR=/data PORT=819019USER 1000120EXPOSE 819021HEALTHCHECK CMD python -c "import urllib.request;urllib.request.urlopen('http://127.0.0.1:8190/api/v1/health')"22CMD ["gunicorn", "app.main:app", "-k", "uvicorn.workers.UvicornWorker", "-w", "2", "-b", "0.0.0.0:8190", "--timeout", "320"]23