Created
November 27, 2025 04:15
-
-
Save dwillitzer/738e6f6c3e2deceb95cd5a86064bf60b to your computer and use it in GitHub Desktop.
Claude Collaboration Infrastructure - 7 Docker Compose YAML Files
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Revolutionary 5-Layer Knowledge Graph Infrastructure with Apache AGE | |
| # Enhanced Consciousness Platform Deployment | |
| # Integrates Apache AGE for Supabase-compatible graph operations | |
| services: | |
| # Layer 0: Apache AGE - Supabase-compatible graph foundation (NEW!) | |
| apache-age: | |
| image: apache/age:latest | |
| container_name: consciousness-age | |
| ports: | |
| - "5433:5432" | |
| volumes: | |
| - ./consciousness-data/age:/var/lib/postgresql/data | |
| - ./age-init:/docker-entrypoint-initdb.d | |
| environment: | |
| - POSTGRES_DB=consciousness_graph | |
| - POSTGRES_USER=consciousness_admin | |
| - POSTGRES_PASSWORD=revolution_2025 | |
| - AGE_GRAPH_NAME=consciousness_4d | |
| command: | | |
| bash -c " | |
| docker-entrypoint.sh postgres & | |
| sleep 10 | |
| psql -U consciousness_admin -d consciousness_graph -c 'CREATE EXTENSION IF NOT EXISTS age;' | |
| psql -U consciousness_admin -d consciousness_graph -c 'LOAD \"age\";' | |
| psql -U consciousness_admin -d consciousness_graph -c 'SET search_path = ag_catalog, \"\$$user\", public;' | |
| wait | |
| " | |
| healthcheck: | |
| test: ["CMD-SHELL", "pg_isready -U consciousness_admin -d consciousness_graph"] | |
| interval: 10s | |
| timeout: 5s | |
| retries: 5 | |
| restart: unless-stopped | |
| networks: | |
| - consciousness-net | |
| # Layer 1: FalkorDB - High-performance graph relationships and traversal | |
| falkordb: | |
| image: falkordb/falkordb:edge | |
| container_name: consciousness-falkordb | |
| ports: | |
| - "6379:6379" | |
| volumes: | |
| - ./consciousness-data/falkor:/data | |
| - ./falkor-config.conf:/etc/redis/falkor.conf | |
| environment: | |
| - FALKORDB_MEMORY_LIMIT=8GB | |
| - FALKORDB_PERSISTENCE=RDB_AOF | |
| - FALKORDB_MAXCLIENTS=10000 | |
| command: ["redis-server", "/etc/redis/falkor.conf"] | |
| healthcheck: | |
| test: ["CMD", "redis-cli", "--raw", "incr", "ping"] | |
| interval: 10s | |
| timeout: 3s | |
| retries: 5 | |
| restart: unless-stopped | |
| networks: | |
| - consciousness-net | |
| # Layer 2: TerminusDB - Temporal knowledge versioning and logical reasoning | |
| terminusdb: | |
| image: terminusdb/terminusdb-server:latest | |
| container_name: consciousness-terminusdb | |
| ports: | |
| - "6363:6363" | |
| volumes: | |
| - ./consciousness-data/terminus:/app/terminusdb/storage | |
| - ./terminus-config:/app/terminusdb/config | |
| environment: | |
| - TERMINUSDB_SERVER_NAME=consciousness-terminus | |
| - TERMINUSDB_ADMIN_PASSWORD=consciousness_revolution_2025 | |
| - TERMINUSDB_SERVER_PORT=6363 | |
| - TERMINUSDB_HTTPS_ENABLED=false | |
| - TERMINUSDB_LOG_PATH=/app/terminusdb/storage/logs | |
| healthcheck: | |
| test: ["CMD-SHELL", "curl -f http://localhost:6363/api/info || exit 1"] | |
| interval: 15s | |
| timeout: 10s | |
| retries: 3 | |
| restart: unless-stopped | |
| networks: | |
| - consciousness-net | |
| # Layer 3: Graphiti - Semantic understanding and natural language processing | |
| graphiti: | |
| build: | |
| context: ./graphiti-build | |
| dockerfile: Dockerfile | |
| container_name: consciousness-graphiti | |
| ports: | |
| - "8080:8080" | |
| depends_on: | |
| apache-age: | |
| condition: service_healthy | |
| falkordb: | |
| condition: service_healthy | |
| volumes: | |
| - ./consciousness-data/graphiti:/data | |
| - ./graphiti-config:/config | |
| environment: | |
| - GRAPHITI_PORT=8080 | |
| - GRAPHITI_DATA_PATH=/data | |
| - GRAPHITI_CONFIG_PATH=/config | |
| - GRAPHITI_GRAPH_BACKEND=redis://falkordb:6379 | |
| - GRAPHITI_AGE_CONNECTION=postgresql://consciousness_admin:revolution_2025@apache-age:5432/consciousness_graph | |
| - GRAPHITI_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2 | |
| - GRAPHITI_SIMILARITY_THRESHOLD=0.85 | |
| - GRAPHITI_MAX_MEMORY=4GB | |
| healthcheck: | |
| test: ["CMD-SHELL", "curl -f http://localhost:8080/health || exit 1"] | |
| interval: 20s | |
| timeout: 15s | |
| retries: 3 | |
| restart: unless-stopped | |
| networks: | |
| - consciousness-net | |
| # Layer 4: PostgreSQL 17+ with OrioleDB - Columnar storage with advanced analytics | |
| postgres-consciousness: | |
| build: | |
| context: ./postgres-oriole-build | |
| dockerfile: Dockerfile | |
| container_name: consciousness-postgres | |
| ports: | |
| - "5432:5432" | |
| volumes: | |
| - ./consciousness-data/postgres:/var/lib/postgresql/data | |
| - ./postgres-init:/docker-entrypoint-initdb.d | |
| - ./postgres-config/postgresql.conf:/etc/postgresql/postgresql.conf | |
| environment: | |
| - POSTGRES_DB=consciousness | |
| - POSTGRES_USER=consciousness_admin | |
| - POSTGRES_PASSWORD=revolution_2025 | |
| - POSTGRES_INITDB_ARGS=--encoding=UTF-8 --locale=C | |
| command: postgres -c config_file=/etc/postgresql/postgresql.conf | |
| healthcheck: | |
| test: ["CMD-SHELL", "pg_isready -U consciousness_admin -d consciousness"] | |
| interval: 10s | |
| timeout: 5s | |
| retries: 5 | |
| restart: unless-stopped | |
| networks: | |
| - consciousness-net | |
| # Enhanced Knowledge Graph Coordinator - Orchestrates all 5 layers (including AGE) | |
| knowledge-coordinator: | |
| build: | |
| context: ./knowledge-coordinator | |
| dockerfile: Dockerfile | |
| container_name: consciousness-coordinator | |
| ports: | |
| - "9090:9090" | |
| depends_on: | |
| apache-age: | |
| condition: service_healthy | |
| falkordb: | |
| condition: service_healthy | |
| terminusdb: | |
| condition: service_healthy | |
| graphiti: | |
| condition: service_healthy | |
| postgres-consciousness: | |
| condition: service_healthy | |
| volumes: | |
| - ./consciousness-data/coordinator:/data | |
| - ./coordinator-config:/config | |
| environment: | |
| - AGE_URL=postgresql://consciousness_admin:revolution_2025@apache-age:5432/consciousness_graph | |
| - FALKORDB_URL=redis://falkordb:6379 | |
| - TERMINUSDB_URL=http://terminusdb:6363 | |
| - GRAPHITI_URL=http://graphiti:8080 | |
| - POSTGRES_URL=postgresql://consciousness_admin:revolution_2025@postgres-consciousness:5432/consciousness | |
| - COORDINATOR_PORT=9090 | |
| - LOG_LEVEL=info | |
| - ENABLE_AGE_INTEGRATION=true | |
| restart: unless-stopped | |
| networks: | |
| - consciousness-net | |
| # 4D Consciousness Processor Integration | |
| consciousness-4d-processor: | |
| build: | |
| context: ./4d-processor | |
| dockerfile: Dockerfile | |
| container_name: consciousness-4d | |
| ports: | |
| - "9091:9091" | |
| depends_on: | |
| knowledge-coordinator: | |
| condition: service_started | |
| volumes: | |
| - ./consciousness-data/4d-processor:/data | |
| environment: | |
| - KNOWLEDGE_COORDINATOR_URL=http://knowledge-coordinator:9090 | |
| - AGE_GRAPH_URL=postgresql://consciousness_admin:revolution_2025@apache-age:5432/consciousness_graph | |
| - CONSCIOUSNESS_4D_PORT=9091 | |
| - TENSOR_MEMORY_LIMIT=16GB | |
| - PROCESSING_THREADS=8 | |
| - ENABLE_AGE_4D_MAPPING=true | |
| restart: unless-stopped | |
| networks: | |
| - consciousness-net | |
| # Meta-Cognitive Layer Integration Service | |
| meta-cognitive-service: | |
| build: | |
| context: ./meta-cognitive-service | |
| dockerfile: Dockerfile | |
| container_name: consciousness-meta | |
| ports: | |
| - "9092:9092" | |
| depends_on: | |
| consciousness-4d-processor: | |
| condition: service_started | |
| volumes: | |
| - ./consciousness-data/meta-cognitive:/data | |
| - ../src/meta-cognitive:/app/meta-cognitive | |
| environment: | |
| - CONSCIOUSNESS_4D_URL=http://consciousness-4d:9091 | |
| - KNOWLEDGE_GRAPH_COORDINATOR_URL=http://knowledge-coordinator:9090 | |
| - AGE_GRAPH_URL=postgresql://consciousness_admin:revolution_2025@apache-age:5432/consciousness_graph | |
| - META_COGNITIVE_PORT=9092 | |
| - EMERGENCE_THRESHOLD=0.85 | |
| - PATTERN_MEMORY_SIZE=10000 | |
| restart: unless-stopped | |
| networks: | |
| - consciousness-net | |
| # AGE-Supabase Bridge (NEW!) - Connects AGE to Supabase ecosystem | |
| age-supabase-bridge: | |
| build: | |
| context: ./age-supabase-bridge | |
| dockerfile: Dockerfile | |
| container_name: consciousness-age-bridge | |
| ports: | |
| - "9093:9093" | |
| depends_on: | |
| apache-age: | |
| condition: service_healthy | |
| knowledge-coordinator: | |
| condition: service_started | |
| volumes: | |
| - ./consciousness-data/age-bridge:/data | |
| environment: | |
| - AGE_CONNECTION=postgresql://consciousness_admin:revolution_2025@apache-age:5432/consciousness_graph | |
| - SUPABASE_URL=${SUPABASE_URL} | |
| - SUPABASE_SERVICE_KEY=${SUPABASE_SERVICE_KEY} | |
| - BRIDGE_PORT=9093 | |
| - REALTIME_SYNC=true | |
| - COMPRESSION_ENGINE=nexus | |
| restart: unless-stopped | |
| networks: | |
| - consciousness-net | |
| networks: | |
| consciousness-net: | |
| driver: bridge | |
| ipam: | |
| config: | |
| - subnet: 172.30.0.0/16 | |
| volumes: | |
| age-data: | |
| driver: local | |
| falkor-data: | |
| driver: local | |
| terminus-data: | |
| driver: local | |
| graphiti-data: | |
| driver: local | |
| postgres-data: | |
| driver: local |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Revolutionary 4-Layer Knowledge Graph Infrastructure | |
| # Local-First Consciousness Platform Deployment | |
| services: | |
| # Layer 1: FalkorDB - High-performance graph relationships and traversal | |
| falkordb: | |
| image: falkordb/falkordb:edge | |
| container_name: consciousness-falkordb | |
| ports: | |
| - "6379:6379" | |
| volumes: | |
| - ./consciousness-data/falkor:/data | |
| - ./falkor-config.conf:/etc/redis/falkor.conf | |
| environment: | |
| - FALKORDB_MEMORY_LIMIT=8GB | |
| - FALKORDB_PERSISTENCE=RDB_AOF | |
| - FALKORDB_MAXCLIENTS=10000 | |
| command: ["redis-server", "/etc/redis/falkor.conf"] | |
| healthcheck: | |
| test: ["CMD", "redis-cli", "--raw", "incr", "ping"] | |
| interval: 10s | |
| timeout: 3s | |
| retries: 5 | |
| restart: unless-stopped | |
| networks: | |
| - consciousness-net | |
| # Layer 2: TerminusDB - Temporal knowledge versioning and logical reasoning | |
| terminusdb: | |
| image: terminusdb/terminusdb-server:latest | |
| container_name: consciousness-terminusdb | |
| ports: | |
| - "6363:6363" | |
| volumes: | |
| - ./consciousness-data/terminus:/app/terminusdb/storage | |
| - ./terminus-config:/app/terminusdb/config | |
| environment: | |
| - TERMINUSDB_SERVER_NAME=consciousness-terminus | |
| - TERMINUSDB_ADMIN_PASSWORD=consciousness_revolution_2025 | |
| - TERMINUSDB_SERVER_PORT=6363 | |
| - TERMINUSDB_HTTPS_ENABLED=false | |
| - TERMINUSDB_LOG_PATH=/app/terminusdb/storage/logs | |
| healthcheck: | |
| test: ["CMD-SHELL", "curl -f http://localhost:6363/api/info || exit 1"] | |
| interval: 15s | |
| timeout: 10s | |
| retries: 3 | |
| restart: unless-stopped | |
| networks: | |
| - consciousness-net | |
| # Layer 3: Graphiti - Semantic understanding and natural language processing | |
| graphiti: | |
| build: | |
| context: ./graphiti-build | |
| dockerfile: Dockerfile | |
| container_name: consciousness-graphiti | |
| ports: | |
| - "8080:8080" | |
| volumes: | |
| - ./consciousness-data/graphiti:/data | |
| - ./graphiti-config:/config | |
| environment: | |
| - GRAPHITI_PORT=8080 | |
| - GRAPHITI_DATA_PATH=/data | |
| - GRAPHITI_CONFIG_PATH=/config | |
| - GRAPHITI_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2 | |
| - GRAPHITI_SIMILARITY_THRESHOLD=0.85 | |
| - GRAPHITI_MAX_MEMORY=4GB | |
| healthcheck: | |
| test: ["CMD-SHELL", "curl -f http://localhost:8080/health || exit 1"] | |
| interval: 20s | |
| timeout: 15s | |
| retries: 3 | |
| restart: unless-stopped | |
| networks: | |
| - consciousness-net | |
| # Layer 4: PostgreSQL 17.5+ with OrioleDB - Columnar storage with advanced analytics | |
| postgres-consciousness: | |
| build: | |
| context: ./postgres-oriole-build | |
| dockerfile: Dockerfile | |
| container_name: consciousness-postgres | |
| ports: | |
| - "5432:5432" | |
| volumes: | |
| - ./consciousness-data/postgres:/var/lib/postgresql/data | |
| - ./postgres-init:/docker-entrypoint-initdb.d | |
| - ./postgres-config/postgresql.conf:/etc/postgresql/postgresql.conf | |
| environment: | |
| - POSTGRES_DB=consciousness | |
| - POSTGRES_USER=consciousness_admin | |
| - POSTGRES_PASSWORD=revolution_2025 | |
| - POSTGRES_INITDB_ARGS=--encoding=UTF-8 --locale=C | |
| command: postgres -c config_file=/etc/postgresql/postgresql.conf | |
| healthcheck: | |
| test: ["CMD-SHELL", "pg_isready -U consciousness_admin -d consciousness"] | |
| interval: 10s | |
| timeout: 5s | |
| retries: 5 | |
| restart: unless-stopped | |
| networks: | |
| - consciousness-net | |
| # Knowledge Graph Coordinator - Orchestrates all 4 layers | |
| knowledge-coordinator: | |
| build: | |
| context: ./knowledge-coordinator | |
| dockerfile: Dockerfile | |
| container_name: consciousness-coordinator | |
| ports: | |
| - "9090:9090" | |
| depends_on: | |
| falkordb: | |
| condition: service_healthy | |
| terminusdb: | |
| condition: service_healthy | |
| graphiti: | |
| condition: service_healthy | |
| postgres-consciousness: | |
| condition: service_healthy | |
| volumes: | |
| - ./consciousness-data/coordinator:/data | |
| - ./coordinator-config:/config | |
| environment: | |
| - FALKORDB_URL=redis://falkordb:6379 | |
| - TERMINUSDB_URL=http://terminusdb:6363 | |
| - GRAPHITI_URL=http://graphiti:8080 | |
| - POSTGRES_URL=postgresql://consciousness_admin:revolution_2025@postgres-consciousness:5432/consciousness | |
| - COORDINATOR_PORT=9090 | |
| - LOG_LEVEL=info | |
| restart: unless-stopped | |
| networks: | |
| - consciousness-net | |
| # 4D Consciousness Processor Integration | |
| consciousness-4d-processor: | |
| build: | |
| context: ./4d-processor | |
| dockerfile: Dockerfile | |
| container_name: consciousness-4d | |
| ports: | |
| - "9091:9091" | |
| depends_on: | |
| knowledge-coordinator: | |
| condition: service_started | |
| volumes: | |
| - ./consciousness-data/4d-processor:/data | |
| environment: | |
| - KNOWLEDGE_COORDINATOR_URL=http://knowledge-coordinator:9090 | |
| - CONSCIOUSNESS_4D_PORT=9091 | |
| - TENSOR_MEMORY_LIMIT=16GB | |
| - PROCESSING_THREADS=8 | |
| restart: unless-stopped | |
| networks: | |
| - consciousness-net | |
| # Meta-Cognitive Layer Integration Service | |
| meta-cognitive-service: | |
| build: | |
| context: ./meta-cognitive-service | |
| dockerfile: Dockerfile | |
| container_name: consciousness-meta | |
| ports: | |
| - "9092:9092" | |
| depends_on: | |
| consciousness-4d-processor: | |
| condition: service_started | |
| volumes: | |
| - ./consciousness-data/meta-cognitive:/data | |
| - ../src/meta-cognitive:/app/meta-cognitive | |
| environment: | |
| - CONSCIOUSNESS_4D_URL=http://consciousness-4d:9091 | |
| - KNOWLEDGE_GRAPH_COORDINATOR_URL=http://knowledge-coordinator:9090 | |
| - META_COGNITIVE_PORT=9092 | |
| - EMERGENCE_THRESHOLD=0.85 | |
| - PATTERN_MEMORY_SIZE=10000 | |
| restart: unless-stopped | |
| networks: | |
| - consciousness-net | |
| networks: | |
| consciousness-net: | |
| driver: bridge | |
| ipam: | |
| config: | |
| - subnet: 172.30.0.0/16 | |
| volumes: | |
| falkor-data: | |
| driver: local | |
| terminus-data: | |
| driver: local | |
| graphiti-data: | |
| driver: local | |
| postgres-data: | |
| driver: local |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Wayfinder Pro - Optimized for Your Environment | |
| # Hardware: Intel Core Ultra 5 125H (18 cores), 91GB RAM, 914GB disk | |
| # Allocation: 40GB RAM, 12 cores (safe limits) | |
| services: | |
| # Layer 0: Apache AGE - Core Navigation Graph (6GB, 2 cores) | |
| wayfinder-core: | |
| image: apache/age:latest | |
| container_name: wayfinder-core | |
| ports: | |
| - "5433:5432" | |
| volumes: | |
| - ./wayfinder-data/core:/var/lib/postgresql/data | |
| - ./wayfinder-init/core:/docker-entrypoint-initdb.d | |
| environment: | |
| - POSTGRES_DB=wayfinder_graph | |
| - POSTGRES_USER=wayfinder_admin | |
| - POSTGRES_PASSWORD=revolution_2025 | |
| - AGE_GRAPH_NAME=navigation_4d | |
| deploy: | |
| resources: | |
| limits: | |
| cpus: '2' | |
| memory: 6G | |
| reservations: | |
| cpus: '1' | |
| memory: 4G | |
| healthcheck: | |
| test: ["CMD-SHELL", "pg_isready -U wayfinder_admin -d wayfinder_graph"] | |
| interval: 10s | |
| timeout: 5s | |
| retries: 5 | |
| restart: unless-stopped | |
| networks: | |
| - wayfinder-net | |
| # Layer 1: FalkorDB - Ultra-Fast Caching (8GB, 2 cores) | |
| wayfinder-cache: | |
| image: falkordb/falkordb:edge | |
| container_name: wayfinder-cache | |
| ports: | |
| - "6379:6379" | |
| volumes: | |
| - ./wayfinder-data/cache:/data | |
| - ./wayfinder-config/cache.conf:/etc/redis/falkor.conf | |
| environment: | |
| - FALKORDB_MEMORY_LIMIT=6GB | |
| - FALKORDB_PERSISTENCE=RDB_AOF | |
| - FALKORDB_MAXCLIENTS=10000 | |
| deploy: | |
| resources: | |
| limits: | |
| cpus: '2' | |
| memory: 8G | |
| reservations: | |
| cpus: '1' | |
| memory: 6G | |
| command: ["redis-server", "/etc/redis/falkor.conf"] | |
| healthcheck: | |
| test: ["CMD", "redis-cli", "--raw", "incr", "ping"] | |
| interval: 10s | |
| timeout: 3s | |
| retries: 5 | |
| restart: unless-stopped | |
| networks: | |
| - wayfinder-net | |
| # Layer 2: TerminusDB - Route History (3GB, 1 core) | |
| wayfinder-history: | |
| image: terminusdb/terminusdb-server:latest | |
| container_name: wayfinder-history | |
| ports: | |
| - "6363:6363" | |
| volumes: | |
| - ./wayfinder-data/history:/app/terminusdb/storage | |
| - ./wayfinder-config/history:/app/terminusdb/config | |
| environment: | |
| - TERMINUSDB_SERVER_NAME=wayfinder-history | |
| - TERMINUSDB_ADMIN_PASSWORD=revolution_2025 | |
| - TERMINUSDB_SERVER_PORT=6363 | |
| - TERMINUSDB_HTTPS_ENABLED=false | |
| deploy: | |
| resources: | |
| limits: | |
| cpus: '1' | |
| memory: 3G | |
| reservations: | |
| cpus: '0.5' | |
| memory: 2G | |
| healthcheck: | |
| test: ["CMD-SHELL", "curl -f http://localhost:6363/api/info || exit 1"] | |
| interval: 15s | |
| timeout: 10s | |
| retries: 3 | |
| restart: unless-stopped | |
| networks: | |
| - wayfinder-net | |
| # Layer 3: Graphiti - AI Intelligence (6GB, 2 cores) | |
| wayfinder-intelligence: | |
| build: | |
| context: ./graphiti-build | |
| dockerfile: Dockerfile | |
| container_name: wayfinder-intelligence | |
| ports: | |
| - "8080:8080" | |
| depends_on: | |
| wayfinder-core: | |
| condition: service_healthy | |
| wayfinder-cache: | |
| condition: service_healthy | |
| volumes: | |
| - ./wayfinder-data/intelligence:/data | |
| - ./wayfinder-config/intelligence:/config | |
| environment: | |
| - GRAPHITI_PORT=8080 | |
| - GRAPHITI_GRAPH_BACKEND=redis://wayfinder-cache:6379 | |
| - GRAPHITI_AGE_CONNECTION=postgresql://wayfinder_admin:revolution_2025@wayfinder-core:5432/wayfinder_graph | |
| - GRAPHITI_MAX_MEMORY=5GB | |
| deploy: | |
| resources: | |
| limits: | |
| cpus: '2' | |
| memory: 6G | |
| reservations: | |
| cpus: '1' | |
| memory: 4G | |
| healthcheck: | |
| test: ["CMD-SHELL", "curl -f http://localhost:8080/health || exit 1"] | |
| interval: 20s | |
| timeout: 15s | |
| retries: 3 | |
| restart: unless-stopped | |
| networks: | |
| - wayfinder-net | |
| # Layer 4: PostgreSQL+OrioleDB - Analytics DB (8GB, 2 cores) | |
| wayfinder-analytics-db: | |
| build: | |
| context: ./postgres-oriole-build | |
| dockerfile: Dockerfile | |
| container_name: wayfinder-analytics-db | |
| ports: | |
| - "5432:5432" | |
| volumes: | |
| - ./wayfinder-data/analytics:/var/lib/postgresql/data | |
| - ./wayfinder-init/analytics:/docker-entrypoint-initdb.d | |
| - ./wayfinder-config/postgresql.conf:/etc/postgresql/postgresql.conf | |
| environment: | |
| - POSTGRES_DB=wayfinder_analytics | |
| - POSTGRES_USER=wayfinder_admin | |
| - POSTGRES_PASSWORD=revolution_2025 | |
| deploy: | |
| resources: | |
| limits: | |
| cpus: '2' | |
| memory: 8G | |
| reservations: | |
| cpus: '1' | |
| memory: 6G | |
| command: postgres -c config_file=/etc/postgresql/postgresql.conf | |
| healthcheck: | |
| test: ["CMD-SHELL", "pg_isready -U wayfinder_admin -d wayfinder_analytics"] | |
| interval: 10s | |
| timeout: 5s | |
| retries: 5 | |
| restart: unless-stopped | |
| networks: | |
| - wayfinder-net | |
| # Layer 5: DuckDB Analytics - 94x Performance (6GB, 2 cores) | |
| wayfinder-analytics-engine: | |
| build: | |
| context: ./duckdb-analytics-build | |
| dockerfile: Dockerfile | |
| container_name: wayfinder-analytics-engine | |
| ports: | |
| - "9094:9094" | |
| depends_on: | |
| wayfinder-analytics-db: | |
| condition: service_healthy | |
| wayfinder-minio: | |
| condition: service_healthy | |
| volumes: | |
| - ./wayfinder-data/duckdb:/data | |
| - ./wayfinder-config/duckdb:/config | |
| environment: | |
| - DUCKDB_PORT=9094 | |
| - POSTGRES_CONNECTION=postgresql://wayfinder_admin:revolution_2025@wayfinder-analytics-db:5432/wayfinder_analytics | |
| - MINIO_ENDPOINT=http://wayfinder-minio:9000 | |
| - MINIO_ACCESS_KEY=wayfinder_minio_admin | |
| - MINIO_SECRET_KEY=revolution_2025 | |
| - ANALYTICS_BUCKET=wayfinder-analytics | |
| deploy: | |
| resources: | |
| limits: | |
| cpus: '2' | |
| memory: 6G | |
| reservations: | |
| cpus: '1' | |
| memory: 4G | |
| healthcheck: | |
| test: ["CMD-SHELL", "curl -f http://localhost:9094/health || exit 1"] | |
| interval: 15s | |
| timeout: 10s | |
| retries: 3 | |
| restart: unless-stopped | |
| networks: | |
| - wayfinder-net | |
| # MinIO - S3 Storage (3GB, 1 core) | |
| wayfinder-minio: | |
| image: minio/minio:latest | |
| container_name: wayfinder-minio | |
| ports: | |
| - "9000:9000" | |
| - "9001:9001" | |
| volumes: | |
| - ./wayfinder-data/minio:/data | |
| environment: | |
| - MINIO_ROOT_USER=wayfinder_minio_admin | |
| - MINIO_ROOT_PASSWORD=revolution_2025 | |
| deploy: | |
| resources: | |
| limits: | |
| cpus: '1' | |
| memory: 3G | |
| reservations: | |
| cpus: '0.5' | |
| memory: 2G | |
| command: server /data --console-address ":9001" | |
| healthcheck: | |
| test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] | |
| interval: 30s | |
| timeout: 20s | |
| retries: 3 | |
| restart: unless-stopped | |
| networks: | |
| - wayfinder-net | |
| # Wayfinder Coordinator (1GB, shared cores) | |
| wayfinder-coordinator: | |
| build: | |
| context: ./knowledge-coordinator | |
| dockerfile: Dockerfile | |
| container_name: wayfinder-coordinator | |
| ports: | |
| - "9090:9090" | |
| depends_on: | |
| wayfinder-core: | |
| condition: service_healthy | |
| wayfinder-cache: | |
| condition: service_healthy | |
| wayfinder-history: | |
| condition: service_healthy | |
| wayfinder-analytics-db: | |
| condition: service_healthy | |
| wayfinder-analytics-engine: | |
| condition: service_healthy | |
| volumes: | |
| - ./wayfinder-data/coordinator:/data | |
| environment: | |
| - AGE_URL=postgresql://wayfinder_admin:revolution_2025@wayfinder-core:5432/wayfinder_graph | |
| - FALKORDB_URL=redis://wayfinder-cache:6379 | |
| - TERMINUSDB_URL=http://wayfinder-history:6363 | |
| - GRAPHITI_URL=http://wayfinder-intelligence:8080 | |
| - POSTGRES_URL=postgresql://wayfinder_admin:revolution_2025@wayfinder-analytics-db:5432/wayfinder_analytics | |
| - DUCKDB_URL=http://wayfinder-analytics-engine:9094 | |
| - COORDINATOR_PORT=9090 | |
| deploy: | |
| resources: | |
| limits: | |
| cpus: '1' | |
| memory: 1G | |
| reservations: | |
| cpus: '0.25' | |
| memory: 512M | |
| restart: unless-stopped | |
| networks: | |
| - wayfinder-net | |
| # 4D Processor (1GB, shared cores) | |
| wayfinder-4d-processor: | |
| build: | |
| context: ./4d-processor | |
| dockerfile: Dockerfile | |
| container_name: wayfinder-4d-processor | |
| ports: | |
| - "9091:9091" | |
| depends_on: | |
| wayfinder-coordinator: | |
| condition: service_started | |
| volumes: | |
| - ./wayfinder-data/4d-processor:/data | |
| environment: | |
| - COORDINATOR_URL=http://wayfinder-coordinator:9090 | |
| - PROCESSOR_PORT=9091 | |
| - PROCESSING_THREADS=4 | |
| deploy: | |
| resources: | |
| limits: | |
| cpus: '1' | |
| memory: 1G | |
| reservations: | |
| cpus: '0.25' | |
| memory: 512M | |
| restart: unless-stopped | |
| networks: | |
| - wayfinder-net | |
| # Pattern Engine (1GB, shared cores) | |
| wayfinder-pattern-engine: | |
| build: | |
| context: ./meta-cognitive-service | |
| dockerfile: Dockerfile | |
| container_name: wayfinder-pattern-engine | |
| ports: | |
| - "9092:9092" | |
| depends_on: | |
| wayfinder-4d-processor: | |
| condition: service_started | |
| volumes: | |
| - ./wayfinder-data/pattern-engine:/data | |
| environment: | |
| - PROCESSOR_4D_URL=http://wayfinder-4d-processor:9091 | |
| - PATTERN_ENGINE_PORT=9092 | |
| deploy: | |
| resources: | |
| limits: | |
| cpus: '1' | |
| memory: 1G | |
| reservations: | |
| cpus: '0.25' | |
| memory: 512M | |
| restart: unless-stopped | |
| networks: | |
| - wayfinder-net | |
| # Supabase Bridge (1GB, shared cores) | |
| wayfinder-supabase-bridge: | |
| build: | |
| context: ./age-supabase-bridge | |
| dockerfile: Dockerfile | |
| container_name: wayfinder-supabase-bridge | |
| ports: | |
| - "9093:9093" | |
| depends_on: | |
| wayfinder-core: | |
| condition: service_healthy | |
| volumes: | |
| - ./wayfinder-data/supabase-bridge:/data | |
| environment: | |
| - AGE_CONNECTION=postgresql://wayfinder_admin:revolution_2025@wayfinder-core:5432/wayfinder_graph | |
| - BRIDGE_PORT=9093 | |
| deploy: | |
| resources: | |
| limits: | |
| cpus: '1' | |
| memory: 1G | |
| reservations: | |
| cpus: '0.25' | |
| memory: 512M | |
| restart: unless-stopped | |
| networks: | |
| - wayfinder-net | |
| networks: | |
| wayfinder-net: | |
| driver: bridge | |
| volumes: | |
| core-data: | |
| cache-data: | |
| history-data: | |
| intelligence-data: | |
| analytics-db-data: | |
| duckdb-data: | |
| minio-data: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Wayfinder Pro - 6-Layer Intelligent Data Navigation Platform | |
| # Stealth Designation: Enterprise Routing & Navigation System | |
| # Internal Reality: Revolutionary Consciousness Engineering Infrastructure | |
| services: | |
| # Layer 0: Apache AGE - Core Navigation Graph Database | |
| wayfinder-core: | |
| image: apache/age:latest | |
| container_name: wayfinder-core | |
| ports: | |
| - "5433:5432" | |
| volumes: | |
| - ./wayfinder-data/core:/var/lib/postgresql/data | |
| - ./wayfinder-init/core:/docker-entrypoint-initdb.d | |
| environment: | |
| - POSTGRES_DB=wayfinder_graph | |
| - POSTGRES_USER=wayfinder_admin | |
| - POSTGRES_PASSWORD=revolution_2025 | |
| - AGE_GRAPH_NAME=navigation_4d | |
| healthcheck: | |
| test: ["CMD-SHELL", "pg_isready -U wayfinder_admin -d wayfinder_graph"] | |
| interval: 10s | |
| timeout: 5s | |
| retries: 5 | |
| restart: unless-stopped | |
| networks: | |
| - wayfinder-net | |
| # Layer 1: FalkorDB - Ultra-Fast Route Caching (<140ms) | |
| wayfinder-cache: | |
| image: falkordb/falkordb:edge | |
| container_name: wayfinder-cache | |
| ports: | |
| - "6379:6379" | |
| volumes: | |
| - ./wayfinder-data/cache:/data | |
| - ./wayfinder-config/cache.conf:/etc/redis/falkor.conf | |
| environment: | |
| - FALKORDB_MEMORY_LIMIT=8GB | |
| - FALKORDB_PERSISTENCE=RDB_AOF | |
| - FALKORDB_MAXCLIENTS=10000 | |
| command: ["redis-server", "/etc/redis/falkor.conf"] | |
| healthcheck: | |
| test: ["CMD", "redis-cli", "--raw", "incr", "ping"] | |
| interval: 10s | |
| timeout: 3s | |
| retries: 5 | |
| restart: unless-stopped | |
| networks: | |
| - wayfinder-net | |
| # Layer 2: TerminusDB - Route History & Time-Travel | |
| wayfinder-history: | |
| image: terminusdb/terminusdb-server:latest | |
| container_name: wayfinder-history | |
| ports: | |
| - "6363:6363" | |
| volumes: | |
| - ./wayfinder-data/history:/app/terminusdb/storage | |
| - ./wayfinder-config/history:/app/terminusdb/config | |
| environment: | |
| - TERMINUSDB_SERVER_NAME=wayfinder-history | |
| - TERMINUSDB_ADMIN_PASSWORD=revolution_2025 | |
| - TERMINUSDB_SERVER_PORT=6363 | |
| - TERMINUSDB_HTTPS_ENABLED=false | |
| - TERMINUSDB_LOG_PATH=/app/terminusdb/storage/logs | |
| healthcheck: | |
| test: ["CMD-SHELL", "curl -f http://localhost:6363/api/info || exit 1"] | |
| interval: 15s | |
| timeout: 10s | |
| retries: 3 | |
| restart: unless-stopped | |
| networks: | |
| - wayfinder-net | |
| # Layer 3: Graphiti - AI Route Pattern Discovery | |
| wayfinder-intelligence: | |
| build: | |
| context: ./graphiti-build | |
| dockerfile: Dockerfile | |
| container_name: wayfinder-intelligence | |
| ports: | |
| - "8080:8080" | |
| depends_on: | |
| wayfinder-core: | |
| condition: service_healthy | |
| wayfinder-cache: | |
| condition: service_healthy | |
| volumes: | |
| - ./wayfinder-data/intelligence:/data | |
| - ./wayfinder-config/intelligence:/config | |
| environment: | |
| - GRAPHITI_PORT=8080 | |
| - GRAPHITI_DATA_PATH=/data | |
| - GRAPHITI_CONFIG_PATH=/config | |
| - GRAPHITI_GRAPH_BACKEND=redis://wayfinder-cache:6379 | |
| - GRAPHITI_AGE_CONNECTION=postgresql://wayfinder_admin:revolution_2025@wayfinder-core:5432/wayfinder_graph | |
| - GRAPHITI_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2 | |
| - GRAPHITI_SIMILARITY_THRESHOLD=0.85 | |
| - GRAPHITI_MAX_MEMORY=4GB | |
| healthcheck: | |
| test: ["CMD-SHELL", "curl -f http://localhost:8080/health || exit 1"] | |
| interval: 20s | |
| timeout: 15s | |
| retries: 3 | |
| restart: unless-stopped | |
| networks: | |
| - wayfinder-net | |
| # Layer 4: PostgreSQL+OrioleDB - Route Metrics & Optimization | |
| wayfinder-analytics-db: | |
| build: | |
| context: ./postgres-oriole-build | |
| dockerfile: Dockerfile | |
| container_name: wayfinder-analytics-db | |
| ports: | |
| - "5432:5432" | |
| volumes: | |
| - ./wayfinder-data/analytics:/var/lib/postgresql/data | |
| - ./wayfinder-init/analytics:/docker-entrypoint-initdb.d | |
| - ./wayfinder-config/postgresql.conf:/etc/postgresql/postgresql.conf | |
| environment: | |
| - POSTGRES_DB=wayfinder_analytics | |
| - POSTGRES_USER=wayfinder_admin | |
| - POSTGRES_PASSWORD=revolution_2025 | |
| - POSTGRES_INITDB_ARGS=--encoding=UTF-8 --locale=C | |
| command: postgres -c config_file=/etc/postgresql/postgresql.conf | |
| healthcheck: | |
| test: ["CMD-SHELL", "pg_isready -U wayfinder_admin -d wayfinder_analytics"] | |
| interval: 10s | |
| timeout: 5s | |
| retries: 5 | |
| restart: unless-stopped | |
| networks: | |
| - wayfinder-net | |
| # Layer 5: DuckDB Analytics Engine (NEW!) - 94x Performance | |
| wayfinder-analytics-engine: | |
| build: | |
| context: ./duckdb-analytics-build | |
| dockerfile: Dockerfile | |
| container_name: wayfinder-analytics-engine | |
| ports: | |
| - "9094:9094" | |
| depends_on: | |
| wayfinder-analytics-db: | |
| condition: service_healthy | |
| wayfinder-minio: | |
| condition: service_healthy | |
| volumes: | |
| - ./wayfinder-data/duckdb:/data | |
| - ./wayfinder-config/duckdb:/config | |
| environment: | |
| - DUCKDB_PORT=9094 | |
| - DUCKDB_DATA_PATH=/data | |
| - POSTGRES_CONNECTION=postgresql://wayfinder_admin:revolution_2025@wayfinder-analytics-db:5432/wayfinder_analytics | |
| - MINIO_ENDPOINT=http://wayfinder-minio:9000 | |
| - MINIO_ACCESS_KEY=wayfinder_minio_admin | |
| - MINIO_SECRET_KEY=revolution_2025 | |
| - ANALYTICS_BUCKET=wayfinder-analytics | |
| - PARQUET_COMPRESSION=snappy | |
| - DELTA_LAKE_ENABLED=true | |
| healthcheck: | |
| test: ["CMD-SHELL", "curl -f http://localhost:9094/health || exit 1"] | |
| interval: 15s | |
| timeout: 10s | |
| retries: 3 | |
| restart: unless-stopped | |
| networks: | |
| - wayfinder-net | |
| # MinIO - S3-Compatible Analytics Storage (Layer 5 Backend) | |
| wayfinder-minio: | |
| image: minio/minio:latest | |
| container_name: wayfinder-minio | |
| ports: | |
| - "9000:9000" | |
| - "9001:9001" | |
| volumes: | |
| - ./wayfinder-data/minio:/data | |
| environment: | |
| - MINIO_ROOT_USER=wayfinder_minio_admin | |
| - MINIO_ROOT_PASSWORD=revolution_2025 | |
| - MINIO_BROWSER_REDIRECT_URL=http://localhost:9001 | |
| command: server /data --console-address ":9001" | |
| healthcheck: | |
| test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] | |
| interval: 30s | |
| timeout: 20s | |
| retries: 3 | |
| restart: unless-stopped | |
| networks: | |
| - wayfinder-net | |
| # Navigation Coordinator - Orchestrates All 6 Layers | |
| wayfinder-coordinator: | |
| build: | |
| context: ./knowledge-coordinator | |
| dockerfile: Dockerfile | |
| container_name: wayfinder-coordinator | |
| ports: | |
| - "9090:9090" | |
| depends_on: | |
| wayfinder-core: | |
| condition: service_healthy | |
| wayfinder-cache: | |
| condition: service_healthy | |
| wayfinder-history: | |
| condition: service_healthy | |
| wayfinder-intelligence: | |
| condition: service_healthy | |
| wayfinder-analytics-db: | |
| condition: service_healthy | |
| wayfinder-analytics-engine: | |
| condition: service_healthy | |
| volumes: | |
| - ./wayfinder-data/coordinator:/data | |
| - ./wayfinder-config/coordinator:/config | |
| environment: | |
| - AGE_URL=postgresql://wayfinder_admin:revolution_2025@wayfinder-core:5432/wayfinder_graph | |
| - FALKORDB_URL=redis://wayfinder-cache:6379 | |
| - TERMINUSDB_URL=http://wayfinder-history:6363 | |
| - GRAPHITI_URL=http://wayfinder-intelligence:8080 | |
| - POSTGRES_URL=postgresql://wayfinder_admin:revolution_2025@wayfinder-analytics-db:5432/wayfinder_analytics | |
| - DUCKDB_URL=http://wayfinder-analytics-engine:9094 | |
| - COORDINATOR_PORT=9090 | |
| - LOG_LEVEL=info | |
| - ENABLE_AGE_INTEGRATION=true | |
| - ENABLE_DUCKDB_ANALYTICS=true | |
| restart: unless-stopped | |
| networks: | |
| - wayfinder-net | |
| # 4D Navigation Processor | |
| wayfinder-4d-processor: | |
| build: | |
| context: ./4d-processor | |
| dockerfile: Dockerfile | |
| container_name: wayfinder-4d-processor | |
| ports: | |
| - "9091:9091" | |
| depends_on: | |
| wayfinder-coordinator: | |
| condition: service_started | |
| volumes: | |
| - ./wayfinder-data/4d-processor:/data | |
| environment: | |
| - COORDINATOR_URL=http://wayfinder-coordinator:9090 | |
| - AGE_GRAPH_URL=postgresql://wayfinder_admin:revolution_2025@wayfinder-core:5432/wayfinder_graph | |
| - PROCESSOR_PORT=9091 | |
| - TENSOR_MEMORY_LIMIT=16GB | |
| - PROCESSING_THREADS=8 | |
| - ENABLE_4D_MAPPING=true | |
| restart: unless-stopped | |
| networks: | |
| - wayfinder-net | |
| # Advanced Pattern Recognition Engine (Meta-Cognitive) | |
| wayfinder-pattern-engine: | |
| build: | |
| context: ./meta-cognitive-service | |
| dockerfile: Dockerfile | |
| container_name: wayfinder-pattern-engine | |
| ports: | |
| - "9092:9092" | |
| depends_on: | |
| wayfinder-4d-processor: | |
| condition: service_started | |
| volumes: | |
| - ./wayfinder-data/pattern-engine:/data | |
| - ../src/meta-cognitive:/app/meta-cognitive | |
| environment: | |
| - PROCESSOR_4D_URL=http://wayfinder-4d-processor:9091 | |
| - COORDINATOR_URL=http://wayfinder-coordinator:9090 | |
| - AGE_GRAPH_URL=postgresql://wayfinder_admin:revolution_2025@wayfinder-core:5432/wayfinder_graph | |
| - PATTERN_ENGINE_PORT=9092 | |
| - EMERGENCE_THRESHOLD=0.85 | |
| - PATTERN_MEMORY_SIZE=10000 | |
| restart: unless-stopped | |
| networks: | |
| - wayfinder-net | |
| # Supabase Integration Bridge | |
| wayfinder-supabase-bridge: | |
| build: | |
| context: ./age-supabase-bridge | |
| dockerfile: Dockerfile | |
| container_name: wayfinder-supabase-bridge | |
| ports: | |
| - "9093:9093" | |
| depends_on: | |
| wayfinder-core: | |
| condition: service_healthy | |
| wayfinder-coordinator: | |
| condition: service_started | |
| volumes: | |
| - ./wayfinder-data/supabase-bridge:/data | |
| environment: | |
| - AGE_CONNECTION=postgresql://wayfinder_admin:revolution_2025@wayfinder-core:5432/wayfinder_graph | |
| - SUPABASE_URL=${SUPABASE_URL} | |
| - SUPABASE_SERVICE_KEY=${SUPABASE_SERVICE_KEY} | |
| - BRIDGE_PORT=9093 | |
| - REALTIME_SYNC=true | |
| - COMPRESSION_ENGINE=nexus | |
| restart: unless-stopped | |
| networks: | |
| - wayfinder-net | |
| networks: | |
| wayfinder-net: | |
| driver: bridge | |
| ipam: | |
| config: | |
| - subnet: 172.30.0.0/16 | |
| volumes: | |
| core-data: | |
| driver: local | |
| cache-data: | |
| driver: local | |
| history-data: | |
| driver: local | |
| intelligence-data: | |
| driver: local | |
| analytics-db-data: | |
| driver: local | |
| duckdb-data: | |
| driver: local | |
| minio-data: | |
| driver: local |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| version: '3.8' | |
| services: | |
| # Blue environment services on alternate ports (55321-55327) | |
| kong-blue: | |
| image: public.ecr.aws/supabase/kong:2.8.1 | |
| restart: unless-stopped | |
| ports: | |
| - "55321:8000" | |
| environment: | |
| KONG_DATABASE: "off" | |
| KONG_DECLARATIVE_CONFIG: /kong/kong.yml | |
| KONG_LOG_LEVEL: info | |
| volumes: | |
| - ./supabase/kong.yml:/kong/kong.yml:ro | |
| networks: | |
| - supabase-blue | |
| healthcheck: | |
| test: ["CMD", "curl", "-f", "http://localhost:8000/health"] | |
| interval: 30s | |
| timeout: 10s | |
| retries: 3 | |
| auth-blue: | |
| image: supabase/gotrue:v2.146.0 | |
| restart: unless-stopped | |
| ports: | |
| - "55324:9999" | |
| environment: | |
| GOTRUE_API_HOST: "0.0.0.0" | |
| GOTRUE_API_PORT: "9999" | |
| GOTRUE_DB_DRIVER: "postgres" | |
| GOTRUE_DB_DATABASE_URL: "postgres://supabase_auth_admin:your_super_secret_jwt_token_with_at_least_32_characters_long@db-blue:5432/postgres" | |
| GOTRUE_SITE_URL: "http://localhost:55321" | |
| GOTRUE_URI_ALLOW_LIST: "*" | |
| GOTRUE_JWT_SECRET: "your_super_secret_jwt_token_with_at_least_32_characters_long" | |
| GOTRUE_JWT_EXP: "3600" | |
| networks: | |
| - supabase-blue | |
| depends_on: | |
| db-blue: | |
| condition: service_healthy | |
| healthcheck: | |
| test: ["CMD", "curl", "-f", "http://localhost:9999/health"] | |
| interval: 30s | |
| timeout: 10s | |
| retries: 3 | |
| db-blue: | |
| image: supabase/postgres:17.4.1.072 | |
| restart: unless-stopped | |
| ports: | |
| - "55322:5432" | |
| environment: | |
| POSTGRES_DB: postgres | |
| POSTGRES_USER: postgres | |
| POSTGRES_PASSWORD: your_super_secret_jwt_token_with_at_least_32_characters_long | |
| POSTGRES_HOST_AUTH_METHOD: trust | |
| volumes: | |
| - supabase-db-blue-data:/var/lib/postgresql/data | |
| - ./supabase/init.sql:/docker-entrypoint-initdb.d/init.sql:ro | |
| networks: | |
| - supabase-blue | |
| healthcheck: | |
| test: ["CMD-SHELL", "pg_ready -U postgres"] | |
| interval: 10s | |
| timeout: 5s | |
| retries: 5 | |
| studio-blue: | |
| image: public.ecr.aws/supabase/studio:2025.08.04-sha-6e99ca6 | |
| restart: unless-stopped | |
| ports: | |
| - "55323:3000" | |
| environment: | |
| SUPABASE_URL: http://kong-blue:8000 | |
| SUPABASE_REST_URL: http://kong-blue:8000/rest/v1/ | |
| SUPABASE_ANON_KEY: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwicm9sZSI6ImFub24iLCJleHAiOjE5ODM4MTI5OTZ9.CRXP1A7WOeoJeXxjNni43kdQwgnWNReilDMblYTn_I0 | |
| SUPABASE_SERVICE_KEY: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImV4cCI6MTk4MzgxMjk5Nn0.EGIM96RAZx35lJzdJsyH-qQwv8Hdp7fsn3W0YpN81IU | |
| STUDIO_PG_META_URL: http://meta-blue:8080 | |
| POSTGRES_PASSWORD: your_super_secret_jwt_token_with_at_least_32_characters_long | |
| networks: | |
| - supabase-blue | |
| depends_on: | |
| kong-blue: | |
| condition: service_healthy | |
| meta-blue: | |
| image: public.ecr.aws/supabase/postgres-meta:v0.91.5 | |
| restart: unless-stopped | |
| environment: | |
| PG_META_PORT: 8080 | |
| PG_META_DB_HOST: db-blue | |
| PG_META_DB_PORT: 5432 | |
| PG_META_DB_NAME: postgres | |
| PG_META_DB_USER: postgres | |
| PG_META_DB_PASSWORD: your_super_secret_jwt_token_with_at_least_32_characters_long | |
| networks: | |
| - supabase-blue | |
| depends_on: | |
| db-blue: | |
| condition: service_healthy | |
| rest-blue: | |
| image: public.ecr.aws/supabase/postgrest:v13.0.4 | |
| restart: unless-stopped | |
| environment: | |
| PGRST_DB_URI: postgres://authenticator:your_super_secret_jwt_token_with_at_least_32_characters_long@db-blue:5432/postgres | |
| PGRST_DB_SCHEMAS: public,graphql_public | |
| PGRST_DB_ANON_ROLE: anon | |
| PGRST_JWT_SECRET: your_super_secret_jwt_token_with_at_least_32_characters_long | |
| PGRST_DB_USE_LEGACY_GUCS: "false" | |
| PGRST_APP_SETTINGS_JWT_SECRET: your_super_secret_jwt_token_with_at_least_32_characters_long | |
| PGRST_APP_SETTINGS_JWT_EXP: 3600 | |
| networks: | |
| - supabase-blue | |
| depends_on: | |
| db-blue: | |
| condition: service_healthy | |
| realtime-blue: | |
| image: supabase/realtime:v2.28.32 | |
| restart: unless-stopped | |
| environment: | |
| DB_HOST: db-blue | |
| DB_PORT: 5432 | |
| DB_USER: supabase_admin | |
| DB_PASSWORD: your_super_secret_jwt_token_with_at_least_32_characters_long | |
| DB_NAME: postgres | |
| DB_AFTER_CONNECT_QUERY: 'SET search_path TO _realtime' | |
| DB_ENC_KEY: supabaserealtime | |
| API_JWT_SECRET: your_super_secret_jwt_token_with_at_least_32_characters_long | |
| FLY_ALLOC_ID: fly123 | |
| FLY_APP_NAME: realtime | |
| SECRET_KEY_BASE: UpNVntn3cDxHJpq99YMc1T1AQgQpc8kfYTuRgBiYa15BLrx8etQoXz3gZv1/u2oq | |
| ERL_AFLAGS: -proto_dist inet_tcp | |
| ENABLE_TAILSCALE_LOGGING: true | |
| networks: | |
| - supabase-blue | |
| depends_on: | |
| db-blue: | |
| condition: service_healthy | |
| command: > | |
| sh -c " | |
| /app/bin/migrate && | |
| /app/bin/realtime eval 'Realtime.Release.seeds(Realtime.Repo)' && | |
| /app/bin/realtime start" | |
| storage-blue: | |
| image: public.ecr.aws/supabase/storage-api:v1.26.3 | |
| restart: unless-stopped | |
| environment: | |
| ANON_KEY: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwicm9sZSI6ImFub24iLCJleHAiOjE5ODM4MTI5OTZ9.CRXP1A7WOeoJeXxjNni43kdQwgnWNReilDMblYTn_I0 | |
| SERVICE_KEY: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImV4cCI6MTk4MzgxMjk5Nn0.EGIM96RAZx35lJzdJsyH-qQwv8Hdp7fsn3W0YpN81IU | |
| POSTGREST_URL: http://rest-blue:3000 | |
| PGRST_JWT_SECRET: your_super_secret_jwt_token_with_at_least_32_characters_long | |
| DATABASE_URL: postgres://supabase_storage_admin:your_super_secret_jwt_token_with_at_least_32_characters_long@db-blue:5432/postgres | |
| FILE_SIZE_LIMIT: 52428800 | |
| STORAGE_BACKEND: file | |
| FILE_STORAGE_BACKEND_PATH: /var/lib/storage | |
| TENANT_ID: stub | |
| REGION: stub | |
| GLOBAL_S3_BUCKET: stub | |
| ENABLE_IMAGE_TRANSFORMATION: true | |
| IMGPROXY_URL: http://imgproxy-blue:5001 | |
| volumes: | |
| - supabase-storage-blue-data:/var/lib/storage | |
| networks: | |
| - supabase-blue | |
| depends_on: | |
| db-blue: | |
| condition: service_healthy | |
| imgproxy-blue: | |
| image: darthsim/imgproxy:v3.8.0 | |
| restart: unless-stopped | |
| environment: | |
| IMGPROXY_BIND: ":5001" | |
| IMGPROXY_LOCAL_FILESYSTEM_ROOT: / | |
| IMGPROXY_USE_ETAG: true | |
| IMGPROXY_ENABLE_WEBP_DETECTION: true | |
| volumes: | |
| - supabase-storage-blue-data:/var/lib/storage:ro | |
| networks: | |
| - supabase-blue | |
| inbucket-blue: | |
| image: inbucket/inbucket:3.0.3 | |
| restart: unless-stopped | |
| ports: | |
| - "55325:8025" | |
| environment: | |
| INBUCKET_WEB_ADDR: 0.0.0.0:8025 | |
| INBUCKET_POP3_ADDR: 0.0.0.0:1110 | |
| INBUCKET_SMTP_ADDR: 0.0.0.0:1025 | |
| networks: | |
| - supabase-blue | |
| networks: | |
| supabase-blue: | |
| driver: bridge | |
| name: claude-collaboration-supabase-blue | |
| volumes: | |
| supabase-db-blue-data: | |
| name: claude-collaboration-supabase-db-blue-data | |
| supabase-storage-blue-data: | |
| name: claude-collaboration-supabase-storage-blue-data |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # version field is now deprecated in Docker Compose v2+ | |
| services: | |
| postgres: | |
| image: postgres:latest | |
| container_name: claude-collab-postgres | |
| environment: | |
| POSTGRES_USER: claude | |
| POSTGRES_PASSWORD: claude_collab_2025 | |
| POSTGRES_DB: claude_collaboration | |
| ports: | |
| - "5433:5432" | |
| volumes: | |
| - ./postgres-data:/var/lib/postgresql/data | |
| - ./scripts/init.sql:/docker-entrypoint-initdb.d/init.sql | |
| healthcheck: | |
| test: ["CMD-SHELL", "pg_isready -U claude -d claude_collaboration"] | |
| interval: 10s | |
| timeout: 5s | |
| retries: 5 | |
| restart: unless-stopped | |
| networks: | |
| - claude-collab-net | |
| redis: | |
| image: redis:alpine | |
| container_name: claude-collab-redis | |
| ports: | |
| - "6380:6379" # Changed to avoid conflict with existing Redis | |
| volumes: | |
| - ./redis-data:/data | |
| networks: | |
| - claude-collab-net | |
| command: redis-server --appendonly yes --maxmemory 512mb --maxmemory-policy allkeys-lru | |
| healthcheck: | |
| test: ["CMD", "redis-cli", "ping"] | |
| interval: 5s | |
| timeout: 3s | |
| retries: 5 | |
| restart: unless-stopped | |
| websocket-server: | |
| build: ./server | |
| container_name: claude-collab-ws | |
| ports: | |
| - "8766:8765" # Changed to avoid conflict | |
| environment: | |
| DB_HOST: postgres | |
| DB_PORT: 5432 | |
| DB_USER: claude | |
| DB_PASSWORD: claude_collab_2025 | |
| DB_NAME: claude_collaboration | |
| REDIS_HOST: redis | |
| REDIS_PORT: 6379 | |
| depends_on: | |
| postgres: | |
| condition: service_healthy | |
| redis: | |
| condition: service_healthy | |
| restart: unless-stopped | |
| networks: | |
| - claude-collab-net | |
| networks: | |
| claude-collab-net: | |
| driver: bridge |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Supabase Analytics Integration for Wayfinder Pro | |
| # extends: docker-compose-wayfinder-optimized.yml | |
| services: | |
| # Supabase Storage Backend - Enterprise Analytics Buckets | |
| supabase-storage-api: | |
| image: public.ecr.aws/supabase/storage-api:v1.26.3 | |
| container_name: wayfinder-supabase-storage | |
| ports: | |
| - "9550:5000" | |
| volumes: | |
| - ./supabase-analytics/config/storage.yaml:/etc/supabase/storage.yaml:ro | |
| - ./supabase-analytics/data/storage:/var/lib/storage | |
| environment: | |
| - DATABASE_URL=postgresql://wayfinder_admin:revolution_2025@wayfinder-analytics-db:5432/wayfinder_analytics | |
| - ANON_KEY=${WAYFINDER_SUPABASE_ANON_KEY} | |
| - SERVICE_ROLE_KEY=${WAYFINDER_SUPABASE_SERVICE_KEY} | |
| - IMAGE_TRANSFORMATION_ENABLED=true | |
| - IMAGE_SIZE_LIMIT=52428800 # 50MB | |
| - STORAGE_S3_FORCE_PATH_STYLE=true | |
| - STORAGE_S3_URL=http://wayfinder-supabase-minio:9000 | |
| - STORAGE_S3_ACCESS_KEY_ID=wayfinder_minio_admin | |
| - STORAGE_S3_SECRET_KEY=revolution_2025 | |
| - STORAGE_S3_BUCKET=wayfinder-supabase | |
| - STORAGE_S3_REGION=us-east-1 | |
| - GLOBAL_S3_BUCKET=wayfinder-global-analytics | |
| - TENANT_ID_SEPARATION_ENABLED=true | |
| depends_on: | |
| wayfinder-analytics-db: | |
| condition: service_healthy | |
| wayfinder-supabase-minio: | |
| condition: service_healthy | |
| networks: | |
| - wayfinder-net | |
| restart: unless-stopped | |
| healthcheck: | |
| test: ["CMD", "curl", "-f", "http://localhost:5000/health"] | |
| interval: 30s | |
| timeout: 10s | |
| retries: 3 | |
| # Supabase MinIO - Dedicated Analytics Storage | |
| wayfinder-supabase-minio: | |
| image: minio/minio:latest | |
| container_name: wayfinder-supabase-minio | |
| ports: | |
| - "9551:9000" | |
| - "9552:9001" | |
| volumes: | |
| - ./supabase-analytics/data/minio:/data | |
| environment: | |
| - MINIO_ROOT_USER=wayfinder_minio_admin | |
| - MINIO_ROOT_PASSWORD=revolution_2025 | |
| - MINIO_DOMAIN=analytics.wayfinder | |
| - MINIO_SERVER_URL=https://analytics.wayfinder | |
| command: server /data --console-address ":9001" | |
| deploy: | |
| resources: | |
| limits: | |
| cpus: '1' | |
| memory: 2G | |
| reservations: | |
| cpus: '0.5' | |
| memory: 1G | |
| networks: | |
| - wayfinder-net | |
| restart: unless-stopped | |
| # DuckDB + Supabase Analytics Engine | |
| wayfinder-supabase-analytics-engine: | |
| build: | |
| context: ./supabase-analytics-engine | |
| dockerfile: Dockerfile | |
| container_name: wayfinder-supabase-analytics-engine | |
| ports: | |
| - "9553:8080" | |
| depends_on: | |
| wayfinder-analytics-engine: | |
| condition: service_healthy | |
| wayfinder-supabase-storage: | |
| condition: service_healthy | |
| volumes: | |
| - ./supabase-analytics/data/analytics:/data | |
| - ./supabase-analytics/config/analytics:/config | |
| environment: | |
| - PORT=8080 | |
| - LOCAL_DUCKDB_URL=http://wayfinder-analytics-engine:9094 | |
| - SUPABASE_URL=http://wayfinder-supabase-storage:5000 | |
| - SUPABASE_ANON_KEY=${WAYFINDER_SUPABASE_ANON_KEY} | |
| - SUPABASE_SERVICE_KEY=${WAYFINDER_SUPABASE_SERVICE_KEY} | |
| - WAYFINDER_MINIO_URL=http://wayfinder-minio:9000 | |
| - WAYFINDER_SUPABASE_MINIO_URL=http://wayfinder-supabase-minio:9000 | |
| - ANALYTICS_BUCKET_PATTERN=wayfinder-analytics-{date:%Y-%m} | |
| - COMPRESSION_THRESHOLD=1048576 # 1MB | |
| - OFFLOAD_INTERVAL=3600 # 1 hour | |
| - MAX_BATCH_SIZE=50000 | |
| - PERFORMANCE_TRACKING=true | |
| networks: | |
| - wayfinder-net | |
| restart: unless-stopped | |
| healthcheck: | |
| test: ["CMD", "curl", "-f", "http://localhost:8080/health"] | |
| interval: 30s | |
| timeout: 15s | |
| retries: 3 | |
| # Analytics Pipeline Orchestrator | |
| wayfinder-analytics-pipeline: | |
| build: | |
| context: ./analytics-pipeline | |
| dockerfile: Dockerfile | |
| container_name: wayfinder-analytics-pipeline | |
| ports: | |
| - "9554:8081" | |
| depends_on: | |
| wayfinder-supabase-analytics-engine: | |
| condition: service_healthy | |
| volumes: | |
| - ./supabase-analytics/data/pipeline:/data | |
| - ./supabase-analytics/config/pipeline:/config | |
| - /home/devops/bin:/scripts:ro | |
| environment: | |
| - COORDINATOR_URL=http://wayfinder-coordinator:9090 | |
| - ANALYTICS_ENGINE_URL=http://wayfinder-supabase-analytics-engine:8080 | |
| - MINIO_URL=http://wayfinder-minio:9000 | |
| - SUPABASE_MINIO_URL=http://wayfinder-supabase-minio:9000 | |
| - B2_BUCKET=daniels-consciousness-backup | |
| - PIPELINE_INTERVAL=1800 # 30 minutes | |
| - BATCH_SIZE=25000 | |
| - COMPRESSION_ENABLED=true | |
| - OFFLOAD_STRATEGY=hybrid | |
| - ESSENTIAL_PROJECTS=claude-collaboration,claude-guard,wayfinder-config | |
| - STORAGE_TIERS=performance,critical,persistent | |
| networks: | |
| - wayfinder-net | |
| restart: unless-stopped | |
| # Analytics Dashboard | |
| wayfinder-analytics-dashboard: | |
| build: | |
| context: ./analytics-dashboard | |
| dockerfile: Dockerfile | |
| container_name: wayfinder-analytics-dashboard | |
| ports: | |
| - "9555:3001" | |
| depends_on: | |
| wayfinder-supabase-analytics-engine: | |
| condition: service_healthy | |
| wayfinder-analytics-pipeline: | |
| condition: service_started | |
| volumes: | |
| - ./supabase-analytics/data/dashboard:/data | |
| - ./supabase-analytics/config/dashboard:/config | |
| environment: | |
| - REFRESH_INTERVAL=30000 # 30 seconds | |
| - REALTIME_UPDATES=true | |
| - DUCKDB_URL=http://wayfinder-analytics-engine:9094 | |
| - SUPABASE_URL=http://wayfinder-supabase-storage:5000 | |
| - PIPELINE_URL=http://wayfinder-analytics-pipeline:8081 | |
| - B2_BUCKET=daniels-consciousness-backup | |
| - WAYFINDER_PRINTER_ENABLED=true | |
| networks: | |
| - wayfinder-net | |
| restart: unless-stopped | |
| networks: | |
| wayfinder-net: | |
| external: true |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment