version: '3.8' services: postgres: image: postgres:15-alpine environment: POSTGRES_USER: poimen POSTGRES_PASSWORD: poimen POSTGRES_INITDB_ARGS: -c max_connections=200 ports: - "5432:5432" volumes: - postgres-data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U poimen"] interval: 5s timeout: 5s retries: 5 redis: image: redis:7-alpine ports: - "6379:6379" healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 5s retries: 5 temporal: image: temporalio/auto-setup:latest ports: - "7233:7233" - "8233:8233" environment: DB: postgresql DB_PORT: 5432 POSTGRES_USER: poimen POSTGRES_PASSWORD: poimen POSTGRES_SEEDS: postgres depends_on: postgres: condition: service_healthy healthcheck: test: ["CMD", "tctl", "workflow", "list"] interval: 10s timeout: 5s retries: 5 poimen-memory: build: context: ./memory dockerfile: Dockerfile ports: - "8000:8000" environment: DATABASE_URL: postgresql://poimen:poimen@postgres:5432/poimen_memory REDIS_URL: redis://redis:6379 JWT_SECRET: dev-secret-key LOG_LEVEL: debug depends_on: postgres: condition: service_healthy redis: condition: service_healthy volumes: - ./memory:/app poimen-workflows: build: context: ./workflows dockerfile: Dockerfile ports: - "8080:8080" environment: DATABASE_URL: postgresql://poimen:poimen@postgres:5432/poimen_workflows TEMPORAL_HOST: temporal:7233 MEMORY_SERVICE_URL: http://poimen-memory:8000 JWT_SECRET: dev-secret-key LOG_LEVEL: debug depends_on: postgres: condition: service_healthy temporal: condition: service_healthy poimen-memory: condition: service_started volumes: - ./workflows:/app command: /app/workflows server poimen-workflows-worker: build: context: ./workflows dockerfile: Dockerfile environment: DATABASE_URL: postgresql://poimen:poimen@postgres:5432/poimen_workflows TEMPORAL_HOST: temporal:7233 MEMORY_SERVICE_URL: http://poimen-memory:8000 JWT_SECRET: dev-secret-key LOG_LEVEL: debug depends_on: postgres: condition: service_healthy temporal: condition: service_healthy poimen-memory: condition: service_started volumes: - ./workflows:/app command: /app/workflows worker poimen-frontend: build: context: ./poimen-frontend dockerfile: Dockerfile ports: - "3000:3000" environment: NEXT_PUBLIC_WORKFLOWS_API: http://localhost:8080 NEXT_PUBLIC_MEMORY_API: http://localhost:8000 NEXT_PUBLIC_AUTH_URL: http://localhost:8000/auth OAUTH_CLIENT_ID: dev-client-id OAUTH_CLIENT_SECRET: dev-client-secret NODE_ENV: development depends_on: - poimen-workflows - poimen-memory volumes: - ./poimen-frontend:/app - /app/node_modules volumes: postgres-data: networks: default: name: poimen-network