# Docker Compose pour FireWatch AI # Créé par Marino ATOHOUN version: '3.8' services: # Application Django web: build: . container_name: firewatch_web ports: - "8000:8000" volumes: - ./media:/app/media - ./models:/app/models - ./logs:/app/logs environment: - DEBUG=False - SECRET_KEY=${SECRET_KEY:-django-insecure-change-me-in-production} - DATABASE_URL=postgresql://firewatch:firewatch123@db:5432/firewatch_db - REDIS_URL=redis://redis:6379/0 - CELERY_BROKER_URL=redis://redis:6379/0 - DJANGO_SUPERUSER_USERNAME=admin - DJANGO_SUPERUSER_EMAIL=admin@firewatch.ai - DJANGO_SUPERUSER_PASSWORD=admin123 depends_on: - db - redis restart: unless-stopped networks: - firewatch_network # Base de données PostgreSQL db: image: postgres:15 container_name: firewatch_db environment: - POSTGRES_DB=firewatch_db - POSTGRES_USER=firewatch - POSTGRES_PASSWORD=firewatch123 volumes: - postgres_data:/var/lib/postgresql/data ports: - "5432:5432" restart: unless-stopped networks: - firewatch_network # Redis pour le cache et Celery redis: image: redis:7-alpine container_name: firewatch_redis ports: - "6379:6379" volumes: - redis_data:/data restart: unless-stopped networks: - firewatch_network # Celery Worker pour les tâches asynchrones celery: build: . container_name: firewatch_celery command: celery -A firewatch_project worker --loglevel=info volumes: - ./media:/app/media - ./models:/app/models - ./logs:/app/logs environment: - DEBUG=False - SECRET_KEY=${SECRET_KEY:-django-insecure-change-me-in-production} - DATABASE_URL=postgresql://firewatch:firewatch123@db:5432/firewatch_db - REDIS_URL=redis://redis:6379/0 - CELERY_BROKER_URL=redis://redis:6379/0 depends_on: - db - redis restart: unless-stopped networks: - firewatch_network # Nginx (optionnel, pour la production) nginx: image: nginx:alpine container_name: firewatch_nginx ports: - "80:80" - "443:443" volumes: - ./nginx.conf:/etc/nginx/nginx.conf - ./media:/app/media - ./staticfiles:/app/staticfiles - ./ssl:/etc/nginx/ssl # Pour les certificats SSL depends_on: - web restart: unless-stopped networks: - firewatch_network volumes: postgres_data: driver: local redis_data: driver: local networks: firewatch_network: driver: bridge # Configuration pour le développement # Utilisez: docker-compose -f docker-compose.yml -f docker-compose.dev.yml up --- # docker-compose.dev.yml version: '3.8' services: web: environment: - DEBUG=True - DJANGO_SUPERUSER_USERNAME=dev - DJANGO_SUPERUSER_EMAIL=dev@firewatch.local - DJANGO_SUPERUSER_PASSWORD=dev123 volumes: - .:/app # Mount du code source pour le développement ports: - "8000:8000" command: python manage.py runserver 0.0.0.0:8000 # Désactiver Nginx en développement nginx: profiles: - production