# ©AngelaMos | 2026 # compose.yml name: ${APP_NAME:-siem} services: nginx: build: context: . dockerfile: conf/docker/prod/vite.docker container_name: ${APP_NAME:-siem}-nginx ports: - "${NGINX_HOST_PORT:-8431}:80" volumes: - ./conf/nginx/nginx.prod.conf:/etc/nginx/nginx.conf:ro - ./conf/nginx/prod.nginx:/etc/nginx/conf.d/default.conf:ro depends_on: backend: condition: service_healthy networks: - frontend - backend deploy: resources: limits: cpus: '1.0' memory: 256M reservations: cpus: '0.25' memory: 64M restart: unless-stopped backend: build: context: . dockerfile: conf/docker/prod/flask.docker container_name: ${APP_NAME:-siem}-backend expose: - "5000" env_file: - .env environment: - MONGO_URI=mongodb://mongo:27017/${MONGO_DB:-siem} - REDIS_URL=redis://:${REDIS_PASSWORD}@redis:6379/0 - DEBUG=false depends_on: mongo: condition: service_healthy redis: condition: service_healthy networks: - backend deploy: resources: limits: cpus: '2.0' memory: 1G reservations: cpus: '0.5' memory: 256M healthcheck: test: ["CMD", "curl", "-sf", "http://localhost:5000/health"] interval: 30s timeout: 5s retries: 3 start_period: 40s restart: unless-stopped mongo: image: mongo:8.0 container_name: ${APP_NAME:-siem}-mongo volumes: - mongo_data:/data/db networks: - backend deploy: resources: limits: cpus: '1.0' memory: 512M reservations: cpus: '0.25' memory: 128M healthcheck: test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"] interval: 10s timeout: 5s retries: 5 start_period: 30s restart: unless-stopped redis: image: redis:7-alpine container_name: ${APP_NAME:-siem}-redis volumes: - redis_data:/data command: redis-server --appendonly yes ${REDIS_PASSWORD:+--requirepass ${REDIS_PASSWORD}} networks: - backend deploy: resources: limits: cpus: '0.5' memory: 256M reservations: cpus: '0.1' memory: 64M healthcheck: test: ["CMD-SHELL", "redis-cli ${REDIS_PASSWORD:+-a ${REDIS_PASSWORD}} ping"] interval: 10s timeout: 5s retries: 5 restart: unless-stopped networks: frontend: driver: bridge ipam: config: - subnet: 10.202.83.0/24 backend: driver: bridge ipam: config: - subnet: 10.202.84.0/24 volumes: mongo_data: redis_data: