FROM python:3.12-slim

WORKDIR /app

# Install git + ssh (required for GitLedger with deploy key push)
RUN apt-get update && apt-get install -y --no-install-recommends git openssh-client && rm -rf /var/lib/apt/lists/*

# Copy source and metadata needed for install
COPY pyproject.toml README.md ./
COPY docs/SPEC.md docs/SPEC.md
COPY swarm_at/ swarm_at/

# Install package with server dependencies
RUN pip install --no-cache-dir '.[server]'

# Configure git for GitLedger operations
RUN git config --global user.email "ledger@swarm.at" && \
    git config --global user.name "swarm.at"

# Pre-create ledger directory and SSH config
RUN mkdir -p /data/ledger-repo /root/.ssh && \
    ssh-keyscan github.com >> /root/.ssh/known_hosts 2>/dev/null

CMD ["sh", "-c", "uvicorn swarm_at.api.main:app --host 0.0.0.0 --port ${PORT:-8000}"]
