services: postgres: image: postgres:16-alpine environment: - POSTGRES_USER=raggr - POSTGRES_PASSWORD=raggr_dev_password - POSTGRES_DB=raggr ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U raggr"] interval: 5s timeout: 5s retries: 5 raggr-backend: build: context: ./services/raggr dockerfile: Dockerfile.dev image: torrtle/simbarag:dev ports: - "8080:8080" env_file: - .env environment: - PAPERLESS_TOKEN=${PAPERLESS_TOKEN} - BASE_URL=${BASE_URL} - OLLAMA_URL=${OLLAMA_URL:-http://localhost:11434} - CHROMADB_PATH=/app/chromadb - OPENAI_API_KEY=${OPENAI_API_KEY} - JWT_SECRET_KEY=${JWT_SECRET_KEY} - OIDC_ISSUER=${OIDC_ISSUER} - OIDC_CLIENT_ID=${OIDC_CLIENT_ID} - OIDC_CLIENT_SECRET=${OIDC_CLIENT_SECRET} - OIDC_REDIRECT_URI=${OIDC_REDIRECT_URI} - OIDC_USE_DISCOVERY=${OIDC_USE_DISCOVERY:-true} - DATABASE_URL=postgres://raggr:raggr_dev_password@postgres:5432/raggr - FLASK_ENV=development - PYTHONUNBUFFERED=1 depends_on: postgres: condition: service_healthy volumes: # Persist data only - chromadb_data:/app/chromadb # Share frontend dist with frontend container - frontend_dist:/app/raggr-frontend/dist develop: watch: # Sync Python source files - action: sync path: ./services/raggr target: /app ignore: - raggr-frontend/ - __pycache__/ - "*.pyc" - "*.pyo" - "*.pyd" - .git/ - chromadb/ # Sync+restart on frontend dist changes - action: sync+restart path: ./services/raggr/raggr-frontend/dist target: /app/raggr-frontend/dist # Restart on dependency changes - action: rebuild path: ./services/raggr/pyproject.toml - action: rebuild path: ./services/raggr/uv.lock raggr-frontend: build: context: ./services/raggr/raggr-frontend dockerfile: Dockerfile.dev environment: - NODE_ENV=development volumes: # Share dist folder with backend - frontend_dist:/app/dist develop: watch: # Sync frontend source files - action: sync path: ./services/raggr/raggr-frontend target: /app ignore: - node_modules/ - dist/ - .git/ # Rebuild on dependency changes - action: rebuild path: ./services/raggr/raggr-frontend/package.json - action: rebuild path: ./services/raggr/raggr-frontend/yarn.lock volumes: chromadb_data: postgres_data: frontend_dist: