Spaces:
Running
Running
Update README.md
Browse files
README.md
CHANGED
|
@@ -9,4 +9,254 @@ license: mit
|
|
| 9 |
short_description: Flowise ai With PostgresSQL (Supabase), Created By EnzGamers
|
| 10 |
---
|
| 11 |
|
| 12 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 9 |
short_description: Flowise ai With PostgresSQL (Supabase), Created By EnzGamers
|
| 10 |
---
|
| 11 |
|
| 12 |
+
# Flowise Deployment on Hugging Face Spaces
|
| 13 |
+
|
| 14 |
+
[](https://huggingface.co/spaces)
|
| 15 |
+
[](https://nodejs.org/)
|
| 16 |
+
[](https://www.postgresql.org/)
|
| 17 |
+
|
| 18 |
+
## 📋 Objectif du projet
|
| 19 |
+
|
| 20 |
+
Ce dépôt contient la configuration Docker pour déployer **Flowise** sur Hugging Face Spaces avec une base de données PostgreSQL hébergée sur Supabase. L'objectif est de fournir une solution d'orchestration LLM (Large Language Model) professionnelle, sécurisée et évolutive.
|
| 21 |
+
|
| 22 |
+
## 🏗️ Architecture technique
|
| 23 |
+
|
| 24 |
+
### Composants principaux
|
| 25 |
+
|
| 26 |
+
- **Application** : Flowise v3.0.7
|
| 27 |
+
- **Runtime** : Node.js 20 (Alpine Linux)
|
| 28 |
+
- **Base de données** : PostgreSQL (Supabase)
|
| 29 |
+
- **Plateforme** : Hugging Face Spaces
|
| 30 |
+
- **Port d'écoute** : 7860
|
| 31 |
+
|
| 32 |
+
### Dépendances système
|
| 33 |
+
|
| 34 |
+
```
|
| 35 |
+
- ca-certificates (gestion SSL/TLS)
|
| 36 |
+
- git (contrôle de version)
|
| 37 |
+
- python3, py3-pip (scripts auxiliaires)
|
| 38 |
+
- make, g++, build-base (compilation native)
|
| 39 |
+
- cairo-dev, pango-dev (rendu graphique)
|
| 40 |
+
- chromium (automatisation web via Puppeteer)
|
| 41 |
+
```
|
| 42 |
+
|
| 43 |
+
## 🚀 Guide de déploiement
|
| 44 |
+
|
| 45 |
+
### Prérequis
|
| 46 |
+
|
| 47 |
+
1. **Compte Hugging Face** avec accès aux Spaces
|
| 48 |
+
2. **Base de données Supabase** configurée
|
| 49 |
+
3. **Accès git** au repository
|
| 50 |
+
|
| 51 |
+
### Étape 1 : Configuration de la base de données
|
| 52 |
+
|
| 53 |
+
#### Récupération des identifiants Supabase
|
| 54 |
+
|
| 55 |
+
1. Accédez à votre projet Supabase
|
| 56 |
+
2. Naviguez vers **Project Settings > Database**
|
| 57 |
+
3. Dans la section **Connection string**, sélectionnez **Transaction Pooler**
|
| 58 |
+
4. Notez les informations de connexion (host, port, user, password, database)
|
| 59 |
+
|
| 60 |
+
### Étape 2 : Configuration des secrets Hugging Face
|
| 61 |
+
|
| 62 |
+
Dans votre Space, allez à **Settings > Variables and secrets** et ajoutez :
|
| 63 |
+
|
| 64 |
+
| Variable | Valeur | Type |
|
| 65 |
+
|----------|---------|------|
|
| 66 |
+
| `DATABASE_HOST` | Votre hôte Supabase | Secret |
|
| 67 |
+
| `DATABASE_PORT` | `6543` (Pooler) ou `5432` (Direct) | Variable |
|
| 68 |
+
| `DATABASE_USER` | Votre utilisateur PostgreSQL | Secret |
|
| 69 |
+
| `DATABASE_PASSWORD` | Votre mot de passe | Secret |
|
| 70 |
+
| `DATABASE_NAME` | `postgres` | Variable |
|
| 71 |
+
|
| 72 |
+
### Étape 3 : Déploiement
|
| 73 |
+
|
| 74 |
+
1. **Clonez** ce repository
|
| 75 |
+
2. **Ajoutez** les secrets dans Hugging Face Spaces
|
| 76 |
+
3. **Poussez** le Dockerfile vers votre Space
|
| 77 |
+
4. **Attendez** la construction automatique
|
| 78 |
+
|
| 79 |
+
Le processus de build prend environ 3-5 minutes.
|
| 80 |
+
|
| 81 |
+
## 🔐 Considérations de sécurité
|
| 82 |
+
|
| 83 |
+
### Configuration actuelle (Développement)
|
| 84 |
+
|
| 85 |
+
```dockerfile
|
| 86 |
+
ENV NODE_TLS_REJECT_UNAUTHORIZED=0
|
| 87 |
+
```
|
| 88 |
+
|
| 89 |
+
⚠️ **Attention** : Cette configuration désactive la vérification stricte des certificats SSL. Elle est acceptable pour le développement mais **non recommandée pour la production**.
|
| 90 |
+
|
| 91 |
+
### Configuration recommandée (Production)
|
| 92 |
+
|
| 93 |
+
Pour un environnement de production, modifiez le Dockerfile :
|
| 94 |
+
|
| 95 |
+
```dockerfile
|
| 96 |
+
# Remplacer
|
| 97 |
+
ENV NODE_TLS_REJECT_UNAUTHORIZED=0
|
| 98 |
+
|
| 99 |
+
# Par
|
| 100 |
+
ENV PGSSLMODE=require
|
| 101 |
+
ENV NODE_EXTRA_CA_CERTS=/etc/ssl/certs/ca-certificates.crt
|
| 102 |
+
```
|
| 103 |
+
|
| 104 |
+
### Authentification Flowise
|
| 105 |
+
|
| 106 |
+
Définissez des identifiants sécurisés dans le Dockerfile ou via les secrets :
|
| 107 |
+
|
| 108 |
+
```dockerfile
|
| 109 |
+
ENV FLOWISE_USERNAME=admin
|
| 110 |
+
ENV FLOWISE_PASSWORD=[VOTRE_MOT_DE_PASSE_SECURISE]
|
| 111 |
+
```
|
| 112 |
+
|
| 113 |
+
**Recommandations** :
|
| 114 |
+
- Utilisez un mot de passe fort (minimum 16 caractères)
|
| 115 |
+
- Combinez majuscules, minuscules, chiffres et caractères spéciaux
|
| 116 |
+
- Ne committez jamais les mots de passe dans le code source
|
| 117 |
+
|
| 118 |
+
## 📊 Variables d'environnement
|
| 119 |
+
|
| 120 |
+
### Variables obligatoires
|
| 121 |
+
|
| 122 |
+
| Variable | Description | Valeur par défaut |
|
| 123 |
+
|----------|-------------|-------------------|
|
| 124 |
+
| `DATABASE_TYPE` | Type de base de données | `postgres` |
|
| 125 |
+
| `DATABASE_HOST` | Hôte de la base de données | À définir |
|
| 126 |
+
| `DATABASE_PORT` | Port de connexion | `5432` ou `6543` |
|
| 127 |
+
| `DATABASE_USER` | Utilisateur PostgreSQL | À définir |
|
| 128 |
+
| `DATABASE_PASSWORD` | Mot de passe | À définir |
|
| 129 |
+
| `DATABASE_NAME` | Nom de la base | `postgres` |
|
| 130 |
+
| `PORT` | Port d'écoute de Flowise | `7860` |
|
| 131 |
+
|
| 132 |
+
### Variables optionnelles
|
| 133 |
+
|
| 134 |
+
| Variable | Description | Valeur par défaut |
|
| 135 |
+
|----------|-------------|-------------------|
|
| 136 |
+
| `FLOWISE_USERNAME` | Utilisateur admin | `admin` |
|
| 137 |
+
| `FLOWISE_PASSWORD` | Mot de passe admin | `admin123` |
|
| 138 |
+
| `LOG_LEVEL` | Niveau de journalisation | `info` |
|
| 139 |
+
| `EXECUTION_MODE` | Mode d'exécution | `main` |
|
| 140 |
+
|
| 141 |
+
## 🔍 Diagnostic et résolution de problèmes
|
| 142 |
+
|
| 143 |
+
### Problème : "self-signed certificate in certificate chain"
|
| 144 |
+
|
| 145 |
+
**Symptôme** : Erreur SSL lors de la connexion à Supabase
|
| 146 |
+
|
| 147 |
+
**Solution** :
|
| 148 |
+
1. Vérifiez que `NODE_TLS_REJECT_UNAUTHORIZED=0` est défini
|
| 149 |
+
2. Ou configurez SSL strictement avec `PGSSLMODE=require`
|
| 150 |
+
|
| 151 |
+
### Problème : "Cannot read properties of undefined (reading 'initializeSSO')"
|
| 152 |
+
|
| 153 |
+
**Symptôme** : Échec d'initialisation après erreur de base de données
|
| 154 |
+
|
| 155 |
+
**Solution** :
|
| 156 |
+
1. Vérifiez tous les identifiants de connexion
|
| 157 |
+
2. Confirmez que la base de données est accessible
|
| 158 |
+
3. Testez la connexion avec Transaction Pooler (port 6543)
|
| 159 |
+
|
| 160 |
+
### Problème : L'application démarre mais n'est pas accessible
|
| 161 |
+
|
| 162 |
+
**Symptôme** : Build réussi mais Space inaccessible
|
| 163 |
+
|
| 164 |
+
**Solution** :
|
| 165 |
+
1. Vérifiez que `PORT=7860` est défini
|
| 166 |
+
2. Confirmez la commande de démarrage : `CMD ["npx", "flowise", "start", "--PORT=7860"]`
|
| 167 |
+
|
| 168 |
+
### Vérification des logs
|
| 169 |
+
|
| 170 |
+
Pour consulter les logs de votre Space :
|
| 171 |
+
|
| 172 |
+
1. Accédez à votre Space sur Hugging Face
|
| 173 |
+
2. Cliquez sur l'onglet **Logs**
|
| 174 |
+
3. Recherchez les messages `[INFO]` et `[ERROR]`
|
| 175 |
+
|
| 176 |
+
Log de démarrage réussi :
|
| 177 |
+
```
|
| 178 |
+
🎉 [server]: All initialization steps completed successfully!
|
| 179 |
+
⚡️ [server]: Flowise Server is listening at :7860
|
| 180 |
+
```
|
| 181 |
+
|
| 182 |
+
## 📁 Structure du projet
|
| 183 |
+
|
| 184 |
+
```
|
| 185 |
+
.
|
| 186 |
+
├── Dockerfile # Configuration Docker
|
| 187 |
+
├── README.md # Documentation (ce fichier)
|
| 188 |
+
└── .gitignore # Fichiers à ignorer
|
| 189 |
+
```
|
| 190 |
+
|
| 191 |
+
## 🛠️ Maintenance et mise à jour
|
| 192 |
+
|
| 193 |
+
### Mise à jour de Flowise
|
| 194 |
+
|
| 195 |
+
Pour mettre à jour vers une version plus récente :
|
| 196 |
+
|
| 197 |
+
```dockerfile
|
| 198 |
+
# Dans le Dockerfile, modifiez la commande d'installation
|
| 199 |
+
RUN npm install -g flowise@latest
|
| 200 |
+
```
|
| 201 |
+
|
| 202 |
+
### Sauvegarde de la base de données
|
| 203 |
+
|
| 204 |
+
Supabase effectue des sauvegardes automatiques. Pour une sauvegarde manuelle :
|
| 205 |
+
|
| 206 |
+
1. Accédez à votre projet Supabase
|
| 207 |
+
2. **Database > Backups**
|
| 208 |
+
3. Cliquez sur **Create backup**
|
| 209 |
+
|
| 210 |
+
## 📚 Ressources complémentaires
|
| 211 |
+
|
| 212 |
+
- [Documentation Flowise officielle](https://docs.flowiseai.com/)
|
| 213 |
+
- [Documentation Supabase](https://supabase.com/docs)
|
| 214 |
+
- [Guide Hugging Face Spaces](https://huggingface.co/docs/hub/spaces-overview)
|
| 215 |
+
- [Node.js Best Practices](https://github.com/goldbergyoni/nodebestpractices)
|
| 216 |
+
|
| 217 |
+
## 🤝 Contribution et support
|
| 218 |
+
|
| 219 |
+
### Signalement de problèmes
|
| 220 |
+
|
| 221 |
+
Pour signaler un problème :
|
| 222 |
+
|
| 223 |
+
1. Vérifiez que le problème n'est pas déjà documenté
|
| 224 |
+
2. Collectez les logs pertinents
|
| 225 |
+
3. Décrivez les étapes de reproduction
|
| 226 |
+
|
| 227 |
+
### Bonnes pratiques
|
| 228 |
+
|
| 229 |
+
- **Sécurité** : Ne committez jamais de secrets dans le code
|
| 230 |
+
- **Documentation** : Documentez toutes les modifications
|
| 231 |
+
- **Tests** : Testez localement avant déploiement en production
|
| 232 |
+
- **Versioning** : Utilisez des tags git pour les versions stables
|
| 233 |
+
|
| 234 |
+
## 📄 Licence et conformité
|
| 235 |
+
|
| 236 |
+
Ce projet utilise Flowise sous licence Apache 2.0. Assurez-vous de respecter les termes de la licence lors de l'utilisation et de la distribution.
|
| 237 |
+
|
| 238 |
+
### Considérations éthiques
|
| 239 |
+
|
| 240 |
+
- **Confidentialité** : Ne stockez pas de données sensibles sans consentement
|
| 241 |
+
- **Transparence** : Informez les utilisateurs sur l'utilisation des LLM
|
| 242 |
+
- **Responsabilité** : Surveillez l'utilisation pour éviter les abus
|
| 243 |
+
- **Conformité** : Respectez le RGPD et les réglementations locales
|
| 244 |
+
|
| 245 |
+
## ✅ Checklist de déploiement
|
| 246 |
+
|
| 247 |
+
- [ ] Base de données Supabase configurée
|
| 248 |
+
- [ ] Secrets ajoutés dans Hugging Face Spaces
|
| 249 |
+
- [ ] Dockerfile testé localement (optionnel)
|
| 250 |
+
- [ ] Variables d'environnement validées
|
| 251 |
+
- [ ] SSL/TLS configuré correctement
|
| 252 |
+
- [ ] Identifiants admin modifiés
|
| 253 |
+
- [ ] Documentation à jour
|
| 254 |
+
- [ ] Logs de démarrage vérifiés
|
| 255 |
+
|
| 256 |
+
---
|
| 257 |
+
|
| 258 |
+
**Version** : 1.0.0
|
| 259 |
+
**Dernière mise à jour** : Octobre 2025
|
| 260 |
+
**Mainteneur** : EnzGamers
|
| 261 |
+
|
| 262 |
+
Pour toute question ou assistance, consultez la documentation officielle ou contactez le support technique.
|