x-env: &default-env TZ: ${TZ} PUID: "1000" PGID: "1000" services: postgres: image: postgres:16 environment: POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: ${POSTGRES_DB} volumes: - pgdata:/var/lib/postgresql/data restart: unless-stopped redis: image: redis:7 command: ["redis-server", "--appendonly", "yes"] volumes: - redis:/data restart: unless-stopped minio: image: minio/minio:latest command: server /data --console-address ":9001" environment: MINIO_ROOT_USER: ${MINIO_ROOT_USER} MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD} volumes: - minio:/data ports: - "9000:9000" - "9001:9001" restart: unless-stopped anythingsqlite: image: mintplexlabs/anythingllm:latest environment: - DISABLE_AUTH=true depends_on: - ollama ports: - "3001:3001" volumes: - anythingllm:/app/server/storage container_name: anythingllm restart: unless-stopped ollama: image: ollama/ollama:latest volumes: - ollama:/root/.ollama ports: - "11434:11434" restart: unless-stopped neo4j: image: neo4j:5 environment: - NEO4J_AUTH=${NEO4J_AUTH} volumes: - neo4j:/data ports: - "7474:7474" - "7687:7687" restart: unless-stopped opensearch: image: opensearchproject/opensearch:2.14.0 environment: - discovery.type=single-node - OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_PASSWORD} ulimits: memlock: soft: -1 hard: -1 volumes: - opensearch:/usr/share/opensearch/data ports: - "9200:9200" restart: unless-stopped host-api: build: context: ../docker/host-api env_file: ./.env environment: <<: *default-env DATABASE_URL: postgresql+psycopg://$POSTGRES_USER:$POSTGRES_PASSWORD@postgres:5432/$POSTGRES_DB REDIS_URL: redis://redis:6379/0 MINIO_ENDPOINT: http://minio:9000 MINIO_BUCKET: ${MINIO_BUCKET} ANYLLM_BASE_URL: ${ANYLLM_BASE_URL} ANYLLM_API_KEY: ${ANYLLM_API_KEY} OLLAMA_BASE_URL: ${OLLAMA_BASE_URL} volumes: - ../services/host_api:/app - ../ops/seed:/seed:ro - ../ops/seed/schemas:/schemas:ro ports: - "8000:8000" depends_on: - postgres - redis - minio - ollama - anythingsqlite - neo4j - opensearch restart: unless-stopped worker: build: context: ../ dockerfile: docker/worker/Dockerfile env_file: ./.env environment: <<: *default-env DATABASE_URL: postgresql+psycopg://$POSTGRES_USER:$POSTGRES_PASSWORD@postgres:5432/$POSTGRES_DB REDIS_URL: redis://redis:6379/0 MINIO_ENDPOINT: http://minio:9000 MINIO_BUCKET: ${MINIO_BUCKET} ANYLLM_BASE_URL: ${ANYLLM_BASE_URL} ANYLLM_API_KEY: ${ANYLLM_API_KEY} OLLAMA_BASE_URL: ${OLLAMA_BASE_URL} OPENSEARCH_URL: http://opensearch:9200 NEO4J_URL: bolt://neo4j:7687 NEO4J_AUTH: ${NEO4J_AUTH} volumes: - ../services/worker:/app - ../ops/seed:/seed:ro depends_on: - host-api restart: unless-stopped prometheus: image: prom/prometheus:v2.54.1 volumes: - prometheus:/prometheus restart: unless-stopped grafana: image: grafana/grafana:11.1.0 volumes: - grafana:/var/lib/grafana - ../services/charts:/var/lib/grafana/dashboards:ro ports: - "3000:3000" restart: unless-stopped volumes: pgdata: redis: minio: ollama: neo4j: opensearch: prometheus: grafana: anythingllm: