Architecture de Production

Flowz utilise une architecture multi-conteneurs orchestrée par Docker Compose en production. Les principaux composants sont :

  • API Principale : Service FastAPI exposé sur le port 443
  • Base de données : MongoDB pour le stockage principal
  • Cache : Redis pour la mise en cache et les files d’attente
  • Autoflow : Module d’automatisation avec TiDB comme base de données
  • Monitoring : Système de surveillance intégré

Prérequis

  • Docker et Docker Compose v2
  • Minimum 8GB RAM
  • 4 cœurs CPU
  • 50GB espace disque
  • Ubuntu 22.04 ou plus récent

Variables d’Environnement

Créez un fichier .env avec les variables suivantes :

# Environnement
ENVIRONMENT=production
API_HOST=0.0.0.0
API_PORT=8000
DEBUG=false

# MongoDB
MONGO_ROOT_PASSWORD=<votre_mot_de_passe>
MONGO_PASSWORD=<votre_mot_de_passe>

# Redis
REDIS_PASSWORD=<votre_mot_de_passe>

# Appwrite
APPWRITE_ENDPOINT=<votre_endpoint>
APPWRITE_PROJECT_ID=<votre_project_id>
APPWRITE_API_KEY=<votre_api_key>

# Autres configurations
SMTP_PASSWORD=<votre_mot_de_passe>
STRIPE_SECRET_KEY=<votre_clé>
STRIPE_WEBHOOK_SECRET=<votre_secret>
JWT_SECRET=<votre_secret>

Déploiement

  1. Clonez le dépôt :
git clone https://github.com/Moveto-organization/flowz.git
cd flowz
  1. Configurez les variables d’environnement :
cp .env.example .env
nano .env  # Éditez avec vos valeurs
  1. Démarrez les services :
docker compose -f docker-compose.prod.yaml up -d
  1. Vérifiez l’état des services :
curl http://localhost/api/monitoring/health

Sécurité

  • Les mots de passe sont générés automatiquement lors du premier déploiement
  • Les secrets sont stockés de manière sécurisée dans /opt/flowz/backups/secrets
  • Le pare-feu est configuré automatiquement avec UFW
  • Les backups sont automatisés et chiffrés

Monitoring

Accédez au dashboard de monitoring :

  • URL : https://votre-domaine/monitoring
  • Métriques disponibles :
    • Utilisation CPU/RAM
    • Espace disque
    • État des services
    • Performances des requêtes

Backups

Les backups sont gérés automatiquement :

  • Fréquence : quotidienne
  • Rétention : 7 jours
  • Stockage : /opt/flowz/backups

Pour restaurer un backup :

flowz restore --list  # Liste les backups disponibles
flowz restore <backup_id>  # Restaure un backup spécifique

Mise à l’échelle

Pour ajuster le nombre de réplicas :

export API_REPLICAS=4
export AUTOFLOW_REPLICAS=2
docker compose -f docker-compose.prod.yaml up -d --scale api=$API_REPLICAS

Dépannage

  1. Vérifiez les logs :
docker compose -f docker-compose.prod.yaml logs
  1. Vérifiez l’état des conteneurs :
docker compose -f docker-compose.prod.yaml ps
  1. Redémarrez un service spécifique :
docker compose -f docker-compose.prod.yaml restart <service_name>