paths.py drops the sibling-directory walk (backend is now the repo root, no more frontend/ sibling to walk toward). requirements.txt drops jinja2/PyYAML (only needed for frontend_ssr's sake in the old shared monorepo Dockerfile) and fixes stale backend/push.py-style path comments. New Dockerfile (COPY . /app/, no THERMOGRAPH_SERVICE_ROLE branch -- this image only ever runs backend) and entrypoint.sh (cd /app instead of /app/backend). Minimal build.yml: docker build + boot + /healthz check. Verified: image builds and boots standalone (real alembic migration against SQLite, /healthz and /api/v2/place both 200), full pytest suite green (301 passed, 4 skipped) against the rewritten paths.py.
22 lines
888 B
Text
22 lines
888 B
Text
fastapi==0.115.6
|
|
uvicorn[standard]==0.34.0
|
|
httpx==0.28.1
|
|
polars==1.42.1
|
|
numpy==2.2.1
|
|
# Accounts + notification subscriptions (see accounts/db.py, users.py, notify.py).
|
|
# Postgres in prod/containers: asyncpg (async web/store) + psycopg (sync notifier);
|
|
# aiosqlite is kept for the SQLite fallback the test suite runs on. alembic manages
|
|
# the accounts schema.
|
|
fastapi-users[sqlalchemy]==15.0.5
|
|
aiosqlite==0.22.1
|
|
asyncpg==0.30.0
|
|
psycopg[binary]==3.2.3
|
|
alembic==1.14.0
|
|
# Web Push (VAPID) delivery of notifications (see notifications/push.py). Pulls in
|
|
# py-vapid, cryptography, and http-ece.
|
|
pywebpush==2.0.0
|
|
# Ed25519 verification of Discord interaction webhooks (see notifications/discord_interactions.py).
|
|
PyNaCl==1.5.0
|
|
# Recurring worker-tier jobs — city warming, IndexNow pings (see
|
|
# notifications/scheduler.py). In-process; no broker/queue needed at this scale.
|
|
apscheduler==3.11.3
|