FROM python:3.13-slim

WORKDIR /app

# Dependencias del sistema para Pillow + cryptography
RUN apt-get update && apt-get install -y --no-install-recommends \
    gcc \
    libffi-dev \
    libssl-dev \
    libjpeg-dev \
    zlib1g-dev \
    && rm -rf /var/lib/apt/lists/*

# Pinned deps
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# Codigo
COPY . .

# Volumen persistente para DB + blobs + docs (Railway lo mapea via /data mount)
RUN mkdir -p /data/blobs /data/docs
ENV DATABASE_PATH=/data/ergon.db
ENV BLOBS_DIR=/data/blobs
ENV DOCS_DIR=/data/docs

# Puerto: Railway asigna dinamico via env PORT. Default 8080.
ENV PORT=8080
EXPOSE 8080

# Healthcheck para Railway: GET /health debe responder 200
HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3 \
    CMD python -c "import urllib.request, os; urllib.request.urlopen(f'http://localhost:{os.environ.get(chr(34)+chr(80)+chr(79)+chr(82)+chr(84)+chr(34), 8080)}/health', timeout=4)" || exit 1

# Server: http.server stdlib en main
CMD ["python", "servidor_local.py"]
