# AIM relay image - built on the VPS from a git clone (no registry needed)
FROM python:3.14-slim AS base
ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 UV_COMPILE_BYTECODE=1 UV_LINK_MODE=copy
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
WORKDIR /app
# PACKAGE.md comes along because pyproject points `readme` at it and the build reads it
COPY pyproject.toml uv.lock PACKAGE.md ./
COPY src ./src
RUN uv sync --frozen --no-dev --extra relay
RUN useradd --system --uid 10001 --home /data aim && mkdir -p /data && chown aim:aim /data
USER aim
VOLUME ["/data"]
ENV PATH="/app/.venv/bin:$PATH" AIM_DB=/data/relay.sqlite AIM_BIND=0.0.0.0 AIM_PORT=8080
EXPOSE 8080
HEALTHCHECK --interval=30s --timeout=5s --start-period=15s --retries=3 \
  CMD ["python", "-c", "import urllib.request,sys; sys.exit(0 if urllib.request.urlopen('http://127.0.0.1:8080/health', timeout=4).status == 200 else 1)"]
CMD ["aim-relay", "serve"]
