Parce que tu contrôles tes données, tu es libre de modifier, tu ne dépends d’aucune plateforme, et tu ne paies pas pour tes propres idées.
Un compte Cloudflare (gratuit) → https://dash.cloudflare.com
Un domaine (pas forcément .com, peut coûter moins d’1 €)
Ton service (ex : n8n) qui tourne en local (ex : http://localhost:5678)
Clique sur “Add a Site” dans ton tableau de bord.
Saisis ton domaine (mondomaine.xyz
).
Choisis le plan gratuit.
Cloudflare t’indiquera deux serveurs DNS à copier chez ton registraire (Hostinger, OVH, etc.).
Dans le menu de gauche :
➜ Zero Trust → Accède à https://one.dash.cloudflare.com
Connecte ton compte (Cloudflare Zero Trust)
Clique sur Access > Tunnels
Clique sur “Create a Tunnel”
Donne un nom (ex : n8n-tunnel
)
Télécharge cloudflared si demandé, puis installe l’agent sur ta machine locale (selon ton OS)
Cloudflare génère un token, copie le
Une fois le tunnel créé :
Clique sur “Configure”
Ajoute une règle :
Public hostname : ex n8n.mondomaine.xyz
Service : http://le nom du contenaire:5678
(ou le port de ton app)
Enregistre
version: '3'
services:
# Service n8n : l'automatisation open source
n8n:
image: n8nio/n8n:latest # On utilise ici la dernière version stable de n8n
container_name: n8n # Le nom du conteneur (pratique pour le retrouver)
restart: always # Redémarre automatiquement en cas de plantage ou reboot de la machine
environment:
# L'adresse publique par laquelle n8n sera accessible (via Cloudflare Tunnel)
- N8N_HOST=n8n.mondomaine.xyz
# Port interne utilisé par n8n
- N8N_PORT=5678
# L’URL complète avec HTTPS que n8n utilisera pour ses liens, webhooks, etc.
- WEBHOOK_URL=https://n8n.mondomaine.xyz
# Fuseau horaire utilisé dans n8n (affichage des dates, exécution des workflows, etc.)
- GENERIC_TIMEZONE=Europe/Paris
# Sécurise les fichiers de configuration en lecture seule
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
# Active la protection par mot de passe pour accéder à n8n
- N8N_BASIC_AUTH_ACTIVE=true
# Identifiant de connexion à l’interface n8n
- N8N_BASIC_AUTH_USER=admin@example.com
# Mot de passe associé
- N8N_BASIC_AUTH_PASSWORD=motdepassefort
# Permet d’utiliser certaines fonctionnalités expérimentales (ex: certains nodes)
- N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
# Active les "runners", utile pour les exécutions parallèles (peut être désactivé si non utilisé)
- N8N_RUNNERS_ENABLED=true
# Active la nouvelle fonctionnalité de stockage de données
- N8N_FEATURE_FLAG_DATA_STORAGE=true
# Type de base de données utilisée (ici SQLite, simple pour usage local ou perso)
- DB_TYPE=sqlite
# Chemin vers la base de données locale
- SQLITE_DATABASE_PATH=/home/node/.n8n/n8n.db
ports:
# Port utilisé pour accéder à n8n localement (optionnel si vous utilisez uniquement Cloudflare)
- "5678:5678"
volumes:
# Permet de sauvegarder vos workflows et données même si vous redémarrez Docker
- ./n8n_data:/home/node/.n8n
# Service Cloudflare Tunnel : permet de rendre n8n accessible via HTTPS gratuitement
cloudflared:
image: cloudflare/cloudflared # Image officielle Cloudflare Tunnel
container_name: cloudflared # Nom du conteneur
restart: always # Redémarre automatiquement si besoin
command: tunnel --no-autoupdate run # Démarre le tunnel sans mise à jour automatique
environment:
# Le token de tunnel fourni par Cloudflare (à récupérer sur dash.cloudflare.com)
- TUNNEL_TOKEN=ton_token_cloudflare_ici
Même si vous avez tout bien configuré côté Cloudflare — tunnel actif, domaine pointé, HTTPS fonctionnel — n8n lui, n’est pas au courant.
Par défaut, n8n tourne en HTTP (http://localhost:5678
).
Donc même si Cloudflare fournit une couche HTTPS, n8n continue à générer des liens internes en HTTP, ce qui peut :
faire échouer les redirections,
casser les appels d’API,
générer des webhooks non sécurisés,
ou encore bloquer l’accès à l’interface à cause du navigateur.
La solution : lui dire explicitement qu’il est exposé en HTTPS via Cloudflare.
Dans votre fichier docker-compose.yml
, ajoutez ces deux lignes :
– WEBHOOK_URL=https://n8n.votre-domaine.xyz
– N8N_HOST=n8n.votre-domaine.xyz
Cela permet à n8n de :
générer les bons liens en HTTPS,
rendre les webhooks publics fonctionnels,
et travailler proprement derrière Cloudflare.
Cette étape est indispensable si vous exposez un RAG, un backend SaaS ou toute autre API externe via n8n.
Bonus
Tu trouves le docker-compose complet et propre avec cloudflare inclus qui va lancer les deux instance ensemble
Nos compagnons open source indispensables
Dans Poukoi Poursoi, chaque outil compte. Voici les solutions open source que j’utilise au quotidien pour construire, automatiser, tester, apprendre — sans abonnement, sans verrou, avec liberté.
🟠 n8n – Le cerveau de l’automatisation
C’est le cœur de mon système. J’y connecte des outils, des API, des bases de données. Je crée des workflows, je teste des idées, j’automatise des tâches répétitives. C’est mon backend no-code.
🔵 Redis – La mémoire ultra-rapide
Je l’utilise comme mémoire temporaire pour mes workflows (stockage de hash, sessions, caches). C’est rapide, léger, parfait pour le court terme. Indispensable dans un setup avec n8n.
🟣 Qdrant – Le cerveau vectoriel (IA, RAG, recherche intelligente)
Je l’utilise pour stocker et retrouver des vecteurs d’embeddings. C’est ce qui permet à mes agents IA de faire de la recherche sémantique : comprendre, comparer, trouver les bons documents. Base de mon RAG.
🟢 Supabase – Ma base de données PostgreSQL moderne
Alternative open source à Firebase. Je l’utilise pour stocker des données structurées, gérer des utilisateurs, faire des requêtes SQL, ou interagir avec mon backend. Simple, puissant, gratuit jusqu’à un certain niveau.
🟡 Nextcloud – Mon cloud personnel, à moi
Pour héberger mes fichiers, partager des docs, faire de la synchro, et même créer des formulaires. C’est mon Google Drive auto-hébergé. Et ça marche super bien avec n8n.
🧰 Tous ces outils ont un point commun : ils sont open source, gratuits, et libres.
Je les ai choisis pour leur puissance, leur transparence, et parce qu’ils me permettent de créer un vrai système, complet, sans abonnement.
🧡 Je t’explique comment je les installe, comment je les connecte, et surtout comment je les utilise dans mes projets, dans Poukoi Poursoi.
version: '3.8'
services:
redis:
image: redis:7.2
container_name: redis
ports:
- "6379:6379"
volumes:
- redis_data:/data
command: ["redis-server", "--appendonly", "yes"]
volumes:
redis_data:
Redis (REmote DIctionary Server) est une base de données open source, en mémoire, rapide et ultra-performante, souvent utilisée comme cache, file de messages, ou store clé-valeur. Il est écrit en C et maintenu par la communauté open source sous licence BSD.
créer un dossier redis , copier coller le Docker-compose .( en haut ) aller dans le répertoire redis crée avec le terminal et executer : docker-compose up -d
User: vide
Password : vide
Host: l’adresse ip de votre reseau local (192.168.100.2)
Port: 6379
Database Number: 0
# Récupérer le code source
git clone --depth 1 https://github.com/supabase/supabase
# Créer un nouveau dossier pour votre projet Supabase
mkdir supabase-project
# L’arborescence devrait ressembler à ceci :
# .
# ├── supabase
# └── supabase-project
# Copier les fichiers Docker Compose dans votre projet
cp -rf supabase/docker/* supabase-project
# Copier les variables d’environnement d’exemple
cp supabase/docker/.env.example supabase-project/.env
# Se placer dans le répertoire de votre projet
cd supabase-project
# Télécharger les dernières images Docker
docker compose pull
# Lancer les services (en mode détaché)
docker compose up -d
Supabase est une alternative libre à Firebase.
Il fournit une base de données PostgreSQL, une authentification sécurisée, des API instantanées et du stockage de fichiers, le tout en open source.
Idéal pour lancer des apps web ou mobiles rapidement, avec contrôle total sur vos données.
Suivre les instruction (en haut )
Host: http://192.168.100.2:8000
Service Role Secret: pour récupérer le service rôle, aller sue le fichier .env dans supabase-project
Qdrant est un moteur de recherche vectorielle open source conçu pour indexer et retrouver rapidement des données à partir de vecteurs. C’est l’outil idéal pour les applications basées sur l’IA, comme les systèmes RAG, la recherche sémantique ou la recommandation intelligente.
Ouvrir Docker Desktop
Lancez l’application Docker Desktop sur votre ordinateur.
Aller dans l’onglet “Images” ou “Search”
Recherchez qdrant dans la barre de recherche.
L’image officielle est : qdrant/qdrant
Télécharger l’image Qdrant
Cliquez sur Pull ou Download pour récupérer l’image depuis Docker Hub.
Créer un conteneur Qdrant
Une fois l’image téléchargée, cliquez sur Run.
Nom du conteneur : qdrant
(ou comme vous voulez)
Port à exposer : 6333
→ 6333
(host:container)
Lancer le conteneur
Cliquez sur Run container.
Qdrant est maintenant actif sur :http://localhost:6333
Aller sur http://localhost:6333/dashboard/
créer l’api .
ensuite le credentiel sur N8N
api: api key
Qdrant URL:http://192.168.100.2:6333
API = Application Programming Interface
C’est une interface qui permet à deux applications de communiquer entre elles.
Le client envoie une requête à l’API (ex: un site web ou une app)
L’API traite la demande
Elle renvoie une réponse (souvent au format JSON)
Quand tu fais tourner une API en local, le “host” détermine qui peut y accéder.
Et ce n’est pas juste un détail technique, car il affecte :
L’accès depuis d’autres machines
Le fonctionnement dans Docker
Les tests avec des appareils mobiles
La sécurité et l’isolation du service
localhost
ou 127.0.0.1
Cela signifie : « uniquement accessible depuis ma propre machine »
Ton API tourne bien, mais uniquement toi (ton PC) peut y accéder
Très utile pour le dev perso ou les tests unitaires
⚠️ Inaccessible depuis un téléphone ou une autre machine sur ton réseau
192.168.x.x
ou adresse IP locale de ton PCCela signifie : « accessible depuis tout le réseau local »
Permet à :
ton téléphone de tester l’API
une autre machine ou conteneur Docker de s’y connecter
1. Gagner du temps
Le temps est une ressource non renouvelable.
Chaque minute passée à faire une tâche répétitive est du temps perdu pour :
innover,
réfléchir,
vendre,
ou simplement respirer.
Automatiser permet de déléguer aux machines ce qui ne nécessite ni créativité, ni jugement humain.
Copier-coller des infos d’un outil à un autre, oublier un email, mal renommer un fichier…
Ce sont des erreurs inévitables quand on fait tout à la main.
L’automatisation garantit une exécution fiable, cohérente et constante.
Un bot, un script ou un workflow ne dort pas.
Pendant que tu te reposes, ton système continue à envoyer, classer, surveiller ou répondre.
Quand une tâche est automatisée, elle devient un processus clair, défini, qu’on peut :
améliorer,
surveiller,
transmettre à d’autres.
Tu veux grossir sans recruter tout de suite ? Il faut automatiser.
Un processus manuel supporte difficilement 10x plus de volume.
Un système automatisé, lui, le peut — ou peut être ajusté très facilement.
Demande-toi :
Si oui → candidat à l’automatisation.
1. Les tâches répétitives
2. Les transferts de données entre outils
Ces actions doivent être faites par des intégrations ou des workflows.
3. Les notifications et rappels
4. Les tâches déclenchées par un événement
Exemple : un nouveau formulaire est rempli ? → une fiche client est créée, un email est envoyé, une alerte est notée.
5. Les processus d’onboarding ou de vente
Dans cet épisode, on explore un nœud clé dans les outils d’automatisation :
Le nœud Merge, ou nœud de fusion.
Mais au fait… qu’est-ce qu’il fait exactement ? Et pourquoi c’est important ?
À quoi sert le nœud Merge ?
Il permet de rassembler deux flux de données différents en un seul.
Autrement dit : il fusionne deux branches pour créer une seule sortie exploitable.
C’est utile quand :
Tu as deux sources d’information,
Tu veux combiner des résultats,
Ou tu veux faire suivre deux processus dans une seule suite logique.
1. Append (Concaténer les listes)
Il ajoute les objets les uns à la suite des autres, sans les combiner.
Tu te retrouves avec une liste étendue, parfaite pour regrouper plusieurs résultats.
Cas concret : Comparer des données avec le nœud Merge
Imaginons le scénario suivant :
les données A B C provient du nœud 1 : par exemple, un prix enregistré dans une base de données.
Les données DEF provient du nœud 4 : par exemple, un prix actuel récupéré depuis une API ou un formulaire utilisateur.
Utiliser un nœud Merge
Le Merge va créer un seul objet contenant A B C D E F dans le même bloc de données.
Créer un assistant intelligent capable de :
Répondre aux questions des clients professionnels et particuliers.
Proposer des recommandations de produits en fonction des besoins spécifiques (type de chantier, budget, quantités).
Comparer des produits entre eux.
Orienter vers les meilleures solutions des marques partenaires (Sika, Groupopuma, Terraco, Knauf, BASF…).
Fiches techniques des produits.
Documents PDF de fabricants (Sika, Knauf…).
Guides de pose et d’application.
Tarifs BTP, fiches de stock, etc.
Utilisation de Qdrant
Indexation des documents avec découpage intelligent (chunking).
Ajout de métadonnées pour filtrer par marque, usage, type de produit.
Générés à l’origine avec llm, un modèle performant pour extraire le sens sémantique.
Embeddings stockés dans Qdrant pour permettre une recherche par similarité vectorielle.
Déclencheur : demande de l’utilisateur (via un formulaire Elementor ou une interface chat).
Étapes :
Extraction de la requête utilisateur.
Recherche vectorielle dans Qdrant.
Construction du prompt avec les passages pertinents.
Appel au LLM (OpenAI, Gemini ou autre) pour générer une réponse contextuelle.
Envoi de la réponse à l’utilisateur.
Utilisation de Redis pour conserver un historique court de la conversation.
Permet à l’assistant de suivre la logique des échanges (ex : « ok, maintenant pour l’extérieur ? »).
Rôle : Conseillère technique et commerciale.
Style : Sérieux, professionnel mais accessible.
Elle répond aux utilisateurs comme une vraie experte en magasin de matériaux : de manière claire, rassurante et avec de vraies recommandations basées sur leurs besoins.