services: backend: build: . ports: - "3000:3000" environment: # In production, use a secure secret - SESSION_SECRET=dev_secret_key_12345 - DATABASE_URL=sqlite:///app/data/notes.db - CORS_ALLOWED_ORIGINS=http://localhost:8080,http://localhost:5173 - HOST=0.0.0.0 - PORT=3000 - ALLOW_REGISTRATION=true volumes: - ./data:/app/data worker: build: . command: ["./notes-worker"] environment: - DATABASE_URL=sqlite:///app/data/notes.db - BROKER_URL=nats://nats:4222 - QDRANT_URL=http://qdrant:6334 - EMBEDDING_PROVIDER=fastembed depends_on: - backend - nats - qdrant volumes: - ./data:/app/data frontend: build: ./k-notes-frontend ports: - "8080:80" environment: # This sets the default backend URL for the frontend - API_URL=http://localhost:3000 depends_on: - backend nats: image: nats:alpine container_name: k_notes_nats ports: - "4222:4222" - "6222:6222" - "8222:8222" restart: unless-stopped qdrant: image: qdrant/qdrant:latest container_name: k_notes_qdrant ports: - "6333:6333" - "6334:6334" volumes: - ./data/qdrant_storage:/qdrant/storage:z restart: unless-stopped # Optional: Define volumes explicitly if needed # volumes: # backend_data: