Collaborative-Fraud-Intelligence-Simulator / docker-compose.multinode.yml
yusufcalisir's picture
deploy: Hugging Face space upload
73ba4f5
Raw History Blame Contribute Delete
3.62 kB
# ==============================================================================
# Multi-Node Federated Consortium Simulation Specification
# Usage:
# docker compose -f docker-compose.multinode.yml up --build
# ==============================================================================
services:
coordinator:
build:
context: ./backend
dockerfile: Dockerfile
container_name: cfi-fl-coordinator
environment:
- MODE=coordinator
- APP_ENV=production
- APP_LOG_LEVEL=INFO
- PORT=8000
- GRPC_PORT=50051
- CA_CERT_PATH=/app/pki/ca.pem
- SERVER_CERT_PATH=/app/pki/coordinator/cert.pem
- SERVER_KEY_PATH=/app/pki/coordinator/key.pem
volumes:
- coordinator-data:/app/data
- coordinator-pki:/app/pki
networks:
- consortium-net
ports:
- "50051:50051"
- "8000:8000"
healthcheck:
test: ["CMD", "curl", "-f", "http://127.0.0.1:8000/health"]
interval: 10s
timeout: 3s
retries: 3
bank-a:
build:
context: ./backend
dockerfile: Dockerfile
container_name: cfi-bank-client-a
environment:
- MODE=bank_client
- BANK_ID=bank_a
- APP_ENV=production
- COORDINATOR_URL=coordinator:50051
- CA_CERT_PATH=/app/pki/ca.pem
- BANK_CERT_PATH=/app/pki/bank-a/cert.pem
- BANK_KEY_PATH=/app/pki/bank-a/key.pem
volumes:
- bank-a-data:/app/data
- bank-a-pki:/app/pki
networks:
- bank-a-net
- consortium-net
depends_on:
coordinator:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://127.0.0.1:8000/health"]
interval: 10s
timeout: 3s
retries: 3
bank-b:
build:
context: ./backend
dockerfile: Dockerfile
container_name: cfi-bank-client-b
environment:
- MODE=bank_client
- BANK_ID=bank_b
- APP_ENV=production
- COORDINATOR_URL=coordinator:50051
- CA_CERT_PATH=/app/pki/ca.pem
- BANK_CERT_PATH=/app/pki/bank-b/cert.pem
- BANK_KEY_PATH=/app/pki/bank-b/key.pem
volumes:
- bank-b-data:/app/data
- bank-b-pki:/app/pki
networks:
- bank-b-net
- consortium-net
depends_on:
coordinator:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://127.0.0.1:8000/health"]
interval: 10s
timeout: 3s
retries: 3
bank-c:
build:
context: ./backend
dockerfile: Dockerfile
container_name: cfi-bank-client-c
environment:
- MODE=bank_client
- BANK_ID=bank_c
- APP_ENV=production
- COORDINATOR_URL=coordinator:50051
- CA_CERT_PATH=/app/pki/ca.pem
- BANK_CERT_PATH=/app/pki/bank-c/cert.pem
- BANK_KEY_PATH=/app/pki/bank-c/key.pem
volumes:
- bank-c-data:/app/data
- bank-c-pki:/app/pki
networks:
- bank-c-net
- consortium-net
depends_on:
coordinator:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://127.0.0.1:8000/health"]
interval: 10s
timeout: 3s
retries: 3
networks:
consortium-net:
driver: bridge
name: cfi-consortium-net
bank-a-net:
driver: bridge
internal: true
name: cfi-bank-a-private-net
bank-b-net:
driver: bridge
internal: true
name: cfi-bank-b-private-net
bank-c-net:
driver: bridge
internal: true
name: cfi-bank-c-private-net
volumes:
coordinator-data:
coordinator-pki:
bank-a-data:
bank-a-pki:
bank-b-data:
bank-b-pki:
bank-c-data:
bank-c-pki: