# Smart App City — Docker Compose version: "3.8" services: # API Gateway api-gateway: build: ./backend/api-gateway container_name: smartapp-gateway ports: - "8000:8000" environment: - KEYCLOAK_URL=http://openremote-keycloak:8080/auth - LOCALAI_URL=http://localai-api:8080 - QDRANT_URL=http://qdrant:*** - REDIS_URL=redis://redis:6379 networks: - smartcity-shared restart: always # RAG Service rag-service: build: ./ai/rag-service container_name: smartapp-rag ports: - "8001:8001" environment: - LOCALAI_URL=http://localai-api:8080 - QDRANT_URL=http://qdrant:*** - EMBEDDING_MODEL=intfloat/multilingual-e5-large networks: - smartcity-shared depends_on: - api-gateway restart: always # Agent Service agent-service: build: ./ai/agent-service container_name: smartapp-agent ports: - "8002:8002" environment: - LOCALAI_URL=http://localai-api:8080 - RAG_URL=http://rag-service:8001 networks: - smartcity-shared depends_on: - rag-service restart: always # Qdrant (if not existing) qdrant: image: qdrant/qdrant:v1.9.0 container_name: smartapp-qdrant ports: - "6333:6333" volumes: - qdrant_data:/qdrant/storage networks: - smartcity-shared restart: always # Meilisearch (if not existing) meilisearch: image: getmeili/meilisearch:v1.7 container_name: smartapp-search ports: - "7700:7700" volumes: - meilisearch_data:/meili_data networks: - smartcity-shared restart: always networks: smartcity-shared: external: true volumes: qdrant_data: meilisearch_data: