version: '3.8' networks: beckn_network: driver: bridge name: beckn_network volumes: # BAP volumes bap_client_config_volume: bap_client_schemas_volume: bap_client_logs_volume: bap_network_config_volume: bap_network_schemas_volume: bap_network_logs_volume: # BPP volumes bpp_client_config_volume: bpp_client_schemas_volume: bpp_client_logs_volume: bpp_network_config_volume: bpp_network_schemas_volume: bpp_network_logs_volume: # Gateway and Registry volumes gateway_data_volume: registry_data_volume: services: # ============================================ # Core Infrastructure Services # ============================================ # Redis - Caching Service redis: image: redis:alpine container_name: redis platform: linux/amd64 ports: - "6379:6379" networks: - beckn_network healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 3s retries: 5 # Vault - Key Management Service vault: image: hashicorp/vault:latest container_name: vault platform: linux/amd64 cap_add: - IPC_LOCK ports: - "8200:8200" environment: VAULT_DEV_ROOT_TOKEN_ID: root VAULT_DEV_LISTEN_ADDRESS: 0.0.0.0:8200 command: server -dev -dev-root-token-id=root networks: - beckn_network healthcheck: test: ["CMD", "vault", "status"] interval: 5s timeout: 3s retries: 5 # ============================================ # Beckn Network Services # ============================================ # Registry - Central registry for network participants registry: image: fidedocker/registry:latest container_name: registry platform: linux/amd64 ports: - "3000:3000" # Main registry port - "3030:3030" # Admin/monitoring port volumes: - registry_data_volume:/usr/src/app/data networks: - beckn_network healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3000/health"] interval: 30s timeout: 10s retries: 3 # Gateway - Network gateway for routing gateway: image: fidedocker/gateway:latest container_name: gateway platform: linux/amd64 ports: - "4000:4000" # Main gateway port - "4030:4030" # Admin/monitoring port volumes: - gateway_data_volume:/usr/src/app/data networks: - beckn_network depends_on: - registry healthcheck: test: ["CMD", "curl", "-f", "http://localhost:4000/health"] interval: 30s timeout: 10s retries: 3 # ============================================ # BAP Services (Buyer App) # ============================================ # BAP Client - Buyer App Client bap-client: image: fidedocker/protocol-server:latest container_name: bap-client platform: linux/amd64 ports: - "5001:5001" volumes: - bap_client_config_volume:/usr/src/app/config - bap_client_schemas_volume:/usr/src/app/schemas - bap_client_logs_volume:/usr/src/app/logs networks: - beckn_network depends_on: - registry - gateway environment: - NODE_ENV=development - PORT=5001 - REGISTRY_URL=http://registry:3000 - GATEWAY_URL=http://gateway:4000 # BAP Network - Buyer App Network Layer bap-network: image: fidedocker/protocol-server:latest container_name: bap-network platform: linux/amd64 ports: - "5002:5002" volumes: - bap_network_config_volume:/usr/src/app/config - bap_network_schemas_volume:/usr/src/app/schemas - bap_network_logs_volume:/usr/src/app/logs networks: - beckn_network depends_on: - registry - gateway - bap-client environment: - NODE_ENV=development - PORT=5002 - REGISTRY_URL=http://registry:3000 - GATEWAY_URL=http://gateway:4000 # ============================================ # BPP Services (Seller App) # ============================================ # BPP Client - Seller App Client bpp-client: image: fidedocker/protocol-server:latest container_name: bpp-client platform: linux/amd64 ports: - "6001:6001" volumes: - bpp_client_config_volume:/usr/src/app/config - bpp_client_schemas_volume:/usr/src/app/schemas - bpp_client_logs_volume:/usr/src/app/logs networks: - beckn_network depends_on: - registry - gateway environment: - NODE_ENV=development - PORT=6001 - REGISTRY_URL=http://registry:3000 - GATEWAY_URL=http://gateway:4000 # BPP Network - Seller App Network Layer bpp-network: image: fidedocker/protocol-server:latest container_name: bpp-network platform: linux/amd64 ports: - "6002:6002" volumes: - bpp_network_config_volume:/usr/src/app/config - bpp_network_schemas_volume:/usr/src/app/schemas - bpp_network_logs_volume:/usr/src/app/logs networks: - beckn_network depends_on: - registry - gateway - bpp-client environment: - NODE_ENV=development - PORT=6002 - REGISTRY_URL=http://registry:3000 - GATEWAY_URL=http://gateway:4000 # Port Summary: # - 3000: Registry (Main) # - 3030: Registry (Admin) # - 4000: Gateway (Main) # - 4030: Gateway (Admin) # - 5001: BAP Client # - 5002: BAP Network # - 6001: BPP Client # - 6002: BPP Network # - 6379: Redis # - 8200: Vault # - 8081: Beckn-ONIX Server (run separately)