networks: prometheus_network: driver: bridge services: neo4j: image: neo4j container_name: prometheus_neo4j_container networks: - prometheus_network environment: - NEO4J_AUTH=neo4j/password - NEO4J_PLUGINS=["apoc"] - NEO4J_server_memory_heap_initial__size=6G - NEO4J_server_memory_heap_max__size=12G - NEO4J_dbms_memory_transaction_total_max=12G - NEO4J_db_transaction_timeout=600s volumes: - ./data_neo4j:/var/lib/neo4j/data healthcheck: test: ["CMD", "cypher-shell", "-u", "neo4j", "-p", "password", "--non-interactive", "RETURN 1;"] interval: 30s timeout: 60s retries: 3 postgres: image: postgres:16 container_name: prometheus_postgres_container networks: - prometheus_network environment: - POSTGRES_USER=postgres - POSTGRES_PASSWORD=password - POSTGRES_DB=postgres volumes: - ./data_postgres:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -d postgres -U postgres"] interval: 30s timeout: 60s retries: 3 prometheus: build: . container_name: prometheus networks: - prometheus_network ports: - "9002:9002" environment: # Logging - PROMETHEUS_LOGGING_LEVEL=${PROMETHEUS_LOGGING_LEVEL} # General settings - PROMETHEUS_ENVIRONMENT=${PROMETHEUS_ENVIRONMENT} - PROMETHEUS_BACKEND_CORS_ORIGINS=${PROMETHEUS_BACKEND_CORS_ORIGINS} - PROMETHEUS_ENABLE_AUTHENTICATION=${PROMETHEUS_ENABLE_AUTHENTICATION} # Neo4j settings - PROMETHEUS_NEO4J_URI=${PROMETHEUS_NEO4J_URI} - PROMETHEUS_NEO4J_USERNAME=${PROMETHEUS_NEO4J_USERNAME} - PROMETHEUS_NEO4J_PASSWORD=${PROMETHEUS_NEO4J_PASSWORD} - PROMETHEUS_NEO4J_BATCH_SIZE=${PROMETHEUS_NEO4J_BATCH_SIZE} # Knowledge Graph settings - PROMETHEUS_KNOWLEDGE_GRAPH_MAX_AST_DEPTH=${PROMETHEUS_KNOWLEDGE_GRAPH_MAX_AST_DEPTH} - PROMETHEUS_KNOWLEDGE_GRAPH_CHUNK_SIZE=${PROMETHEUS_KNOWLEDGE_GRAPH_CHUNK_SIZE} - PROMETHEUS_KNOWLEDGE_GRAPH_CHUNK_OVERLAP=${PROMETHEUS_KNOWLEDGE_GRAPH_CHUNK_OVERLAP} - PROMETHEUS_WORKING_DIRECTORY=${PROMETHEUS_WORKING_DIRECTORY} # LLM model settings - PROMETHEUS_ADVANCED_MODEL=${PROMETHEUS_ADVANCED_MODEL} - PROMETHEUS_BASE_MODEL=${PROMETHEUS_BASE_MODEL} # API keys for various LLM providers - PROMETHEUS_ANTHROPIC_API_KEY=${PROMETHEUS_ANTHROPIC_API_KEY} - PROMETHEUS_GEMINI_API_KEY=${PROMETHEUS_GEMINI_API_KEY} - PROMETHEUS_OPENAI_FORMAT_API_KEY=${PROMETHEUS_OPENAI_FORMAT_API_KEY} - PROMETHEUS_OPENAI_FORMAT_BASE_URL=${PROMETHEUS_OPENAI_FORMAT_BASE_URL} # Model settings - PROMETHEUS_ADVANCED_MODEL_TEMPERATURE=${PROMETHEUS_ADVANCED_MODEL_TEMPERATURE} - PROMETHEUS_BASE_MODEL_TEMPERATURE=${PROMETHEUS_BASE_MODEL_TEMPERATURE} # Tavily API key - PROMETHEUS_TAVILY_API_KEY=${PROMETHEUS_TAVILY_API_KEY} # Database settings - PROMETHEUS_DATABASE_URL=${PROMETHEUS_DATABASE_URL} # JWT settings - PROMETHEUS_JWT_SECRET_KEY=${PROMETHEUS_JWT_SECRET_KEY} volumes: - .:/app - /var/run/docker.sock:/var/run/docker.sock depends_on: neo4j: condition: service_healthy postgres: condition: service_healthy