Download docker-compose.yml from Mohamed424/stroke-segmentation-backend: direct link, hf CLI and curl.
- Browser
- Download file 3.45 kB
-
https://huggingface.co/spaces/Mohamed424/stroke-segmentation-backend/resolve/main/docker-compose.yml
- Command line
-
hf download hf://spaces/Mohamed424/stroke-segmentation-backend/docker-compose.yml
-
curl -L -o docker-compose.yml https://huggingface.co/spaces/Mohamed424/stroke-segmentation-backend/resolve/main/docker-compose.yml
3.45 kB
| version: '3.8' | |
| services: | |
| # Backend API Service | |
| backend: | |
| build: | |
| context: ./backend | |
| dockerfile: Dockerfile | |
| container_name: stroke-detection-api | |
| ports: | |
| - "8000:8000" | |
| environment: | |
| - MONGODB_URL=mongodb://mongo:27017 | |
| - DATABASE_NAME=stroke_detection | |
| - CLOUDINARY_CLOUD_NAME=${CLOUDINARY_CLOUD_NAME} | |
| - CLOUDINARY_API_KEY=${CLOUDINARY_API_KEY} | |
| - CLOUDINARY_API_SECRET=${CLOUDINARY_API_SECRET} | |
| volumes: | |
| - ./backend/models:/app/models | |
| - ./backend/logs:/app/logs | |
| depends_on: | |
| - mongo | |
| restart: unless-stopped | |
| networks: | |
| - stroke-network | |
| healthcheck: | |
| test: ["CMD", "curl", "-f", "http://localhost:8000/health"] | |
| interval: 30s | |
| timeout: 10s | |
| retries: 3 | |
| # Frontend Service | |
| frontend: | |
| build: | |
| context: ./frontend | |
| dockerfile: Dockerfile | |
| container_name: stroke-detection-frontend | |
| ports: | |
| - "80:80" | |
| - "443:443" | |
| depends_on: | |
| - backend | |
| restart: unless-stopped | |
| networks: | |
| - stroke-network | |
| environment: | |
| - REACT_APP_API_URL=http://localhost:8000 | |
| # MongoDB Service | |
| mongo: | |
| image: mongo:5.0 | |
| container_name: stroke-detection-mongo | |
| ports: | |
| - "27017:27017" | |
| environment: | |
| - MONGO_INITDB_ROOT_USERNAME=admin | |
| - MONGO_INITDB_ROOT_PASSWORD=password123 | |
| - MONGO_INITDB_DATABASE=stroke_detection | |
| volumes: | |
| - mongo_data:/data/db | |
| - ./backend/mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro | |
| restart: unless-stopped | |
| networks: | |
| - stroke-network | |
| # Redis for Caching (Optional) | |
| redis: | |
| image: redis:7-alpine | |
| container_name: stroke-detection-redis | |
| ports: | |
| - "6379:6379" | |
| volumes: | |
| - redis_data:/data | |
| restart: unless-stopped | |
| networks: | |
| - stroke-network | |
| command: redis-server --appendonly yes | |
| # Nginx Load Balancer (Optional for production) | |
| nginx: | |
| image: nginx:alpine | |
| container_name: stroke-detection-nginx | |
| ports: | |
| - "8080:80" | |
| volumes: | |
| - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro | |
| - ./nginx/ssl:/etc/nginx/ssl:ro | |
| depends_on: | |
| - frontend | |
| - backend | |
| restart: unless-stopped | |
| networks: | |
| - stroke-network | |
| # Monitoring with Prometheus (Optional) | |
| prometheus: | |
| image: prom/prometheus:latest | |
| container_name: stroke-detection-prometheus | |
| ports: | |
| - "9090:9090" | |
| volumes: | |
| - ./monitoring/prometheus.yml:/etc/prometheus/prometheus.yml:ro | |
| - prometheus_data:/prometheus | |
| restart: unless-stopped | |
| networks: | |
| - stroke-network | |
| profiles: | |
| - monitoring | |
| # Grafana for Visualization (Optional) | |
| grafana: | |
| image: grafana/grafana:latest | |
| container_name: stroke-detection-grafana | |
| ports: | |
| - "3000:3000" | |
| environment: | |
| - GF_SECURITY_ADMIN_PASSWORD=admin123 | |
| volumes: | |
| - grafana_data:/var/lib/grafana | |
| - ./monitoring/grafana/dashboards:/etc/grafana/provisioning/dashboards:ro | |
| - ./monitoring/grafana/datasources:/etc/grafana/provisioning/datasources:ro | |
| restart: unless-stopped | |
| networks: | |
| - stroke-network | |
| profiles: | |
| - monitoring | |
| # Named Volumes | |
| volumes: | |
| mongo_data: | |
| driver: local | |
| redis_data: | |
| driver: local | |
| prometheus_data: | |
| driver: local | |
| grafana_data: | |
| driver: local | |
| # Custom Network | |
| networks: | |
| stroke-network: | |
| driver: bridge | |
| ipam: | |
| config: | |
| - subnet: 172.20.0.0/16 |