FireWatch / docker-compose.yml
rinogeek's picture
first commit
e9d86db
# 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