Docker dev stack: Postgres 16 + MinIO, schema auto-applied on fresh volumes
A single `docker compose up` now brings up the full local stack - Postgres, MinIO, and a one-shot bucket setup sidecar. Non-default ports (15432, 19000/19001) mean it won't stomp on services you already have running.
The docker-compose.yml defines three services. Postgres 16 (alpine) runs on port 15432. It mounts docs/db/schema.sql as an init script, so a fresh postgres_data volume gets the full schema on first boot. MinIO runs on 19000 (S3 API) and 19001 (console) with minioadmin/minioadmin as root credentials. A minio-create-bucket sidecar waits on MinIO's health check and creates the mike bucket.
Health checks on both main services gate the sidecar via condition: service_healthy, so the bucket creation only runs after MinIO is ready.
Two things to know before relying on this setup. The minio-create-bucket sidecar uses minio/mc:latest with no pinned tag - that will drift as MinIO releases new versions, and latest images occasionally have breaking changes. The schema bind-mount is read-only and only applies during container initialization. If you modify docs/db/schema.sql during development, the change won't apply to an existing volume; you need to remove the volume and recreate the container.
This commit also bundles two source file changes that belong to the ongoing backend consolidation: the route dispatch additions in api/v1/[[...path]]/route.ts, and the "Use Ollama" quick-switch button on the models settings page.
Spotted something wrong? Or know the PR text has fresher detail than the writeup above?