# SQLite escape hatch override. # # Usage (omit the `db` service from the up command): # # docker compose -f docker-compose.yml -f docker-compose.sqlite.yml \ # up frontend backend worker redis # # This pins the backend and worker to the legacy SQLite database file at # /data/db/mulita.db (in the existing db_data volume), drops the dependency # on Postgres, and skips Alembic — the SQLite schema is still managed by # the inline ALTERs in app/database.py:init_db. # # Vision features that depend on pgvector (PR4 onward) will refuse to enable # in this mode; the search/embedding endpoints will return 503 with a clear # error pointing back at the default Postgres setup. services: backend: command: sh -c "uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload" environment: - DATABASE_URL=sqlite+aiosqlite:////data/db/mulita.db - REDIS_URL=redis://redis:6379 - CELERY_BROKER_URL=redis://redis:6379 - CELERY_RESULT_BACKEND=redis://redis:6379 - PHOTO_DIRS=${PHOTO_DIRS:-/photos} - ALLOWED_ORIGINS=${ALLOWED_ORIGINS:-*} - LOG_LEVEL=${LOG_LEVEL:-INFO} - TZ=${TZ:-UTC} depends_on: redis: condition: service_started worker: environment: - DATABASE_URL=sqlite+aiosqlite:////data/db/mulita.db - REDIS_URL=redis://redis:6379 - CELERY_BROKER_URL=redis://redis:6379 - CELERY_RESULT_BACKEND=redis://redis:6379 - PHOTO_DIRS=${PHOTO_DIRS:-/photos} - CELERYD_CONCURRENCY=${CELERYD_CONCURRENCY:-4} - LOG_LEVEL=${LOG_LEVEL:-INFO} - TZ=${TZ:-UTC} depends_on: redis: condition: service_started backend: condition: service_started