Background image: Matthieu's World Background image: Matthieu's World
Social Icons

Connecter n8n à Supabase auto-hébergé via VPN

3 min de lecture
Par Matthieu Cousin

Table des matières

Tu veux connecter n8n à ta base Supabase auto-hébergée sans exposer ton port PostgreSQL au monde entier ? Voici comment faire proprement.

🧠 Ce setup repose sur deux VPS :

  • VPS maître : héberge Supabase
  • VPS agent : héberge n8n

Les deux sont connectés via WireGuard, et déployés via Coolify. J'ai détaillé comment faire dans cet article.


⚙️ Pré-requis

  • Supabase déployé via Coolify
  • Les deux VPS sont reliés par WireGuard
  • Tu connais leurs IP privées WireGuard :
    • VPS maître (Supabase) : 10.0.0.1 (exemple)
    • VPS agent (n8n) : 10.0.0.2 (exemple)

🧱 Étape 1 – Configurer Supabase pour écouter sur WireGuard

1.1 Modifier postgresql.conf

Depuis Coolify, ouvre un terminal dans le conteneur supabase-db-(suivi de chiffres) :

Tape cette commande :

sed -i "s/^#listen_addresses = 'localhost'/listen_addresses = '*'/'" /var/lib/postgresql/data/postgresql.conf

1.2 Ouvrir le port 5432 sur l’IP WireGuard uniquement

Dans Coolify > Ressource Supabase > Edit Compose File, ajoute ceci dans supabase-db, sous volumes: :

    ports:
      - "10.0.0.1:5432:5432"
🌟 Cela permet d'ouvrir le port par lequel communique PostgreSQL. Ce port ne sera visible que via le VPN, car l'adresse 10.0.0.* est privée.

1.3 Redémarrer Supabase

Clique sur Restart, puis depuis le VPS n8n, tape :

nc -zv 10.0.0.1 5432

✅ Si open s’affiche, c’est bon !


🌐 Étape 2 – Utiliser Supabase avec n8n : deux options

Option 1 – Utiliser Supabase pour héberger n8n

Cela permet de sauvegarder tes workflows et credentials sur un VPS séparé (le maître).

🔹 Avantage : si ton VPS agent plante, tu conserves tout.
🔸 Inconvénient : Supabase sera très sollicité. Si ton VPS maître est peu puissant, cela peut ralentir n8n.

Personnellement, je n’ai pas retenu cette option, mais elle est idéale si tu as un bon VPS ou un VPS dédié à la base de données.

Option 2 – Utiliser Supabase comme base externe pour certains workflows

Ici, n8n utilise sa propre base (via PostgreSQL local intégré à Coolify), mais se connecte à Supabase pour stocker ou lire des données spécifiques via des nodes Postgres.

🔹 Avantage : léger pour les deux VPS
🔸 Tu gères les connexions manuellement dans tes workflows

Dans ce cas, l’étape précédente suffit. Il te reste simplement à configurer les credentials dans n8n.


🛠️ Si tu choisis l’option 1 : heberger n8n sur Supabase

🔐 3.1 Récupérer les identifiants PostgreSQL

Depuis Coolify, récupère dans la ressource Supabase :

  • HOST : 10.0.0.1
  • PORT : 5432
  • DB NAME : postgres
  • USER : postgres
  • PASSWORD : visible dans SERVICE_PASSWORD_POSTGRES

3.2 Créer une ressource n8n sans base intégrée

Dans Coolify (VPS agent) :

  • Ne coche pas “Connect to Predefined Network”
  • Dans Environment Variables, ajoute :
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=10.0.0.1
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=postgres
- DB_POSTGRESDB_USER=postgres
- DB_POSTGRESDB_PASSWORD=ton_mdp_postgres
- DB_POSTGRESDB_SCHEMA=public

Remplace ton_mdp_postgres par le vrai mot de passe.

Clique sur Save puis Redeploy.

✅ 3.3 – Tester la connexion

  • Lance n8n via son sous-domaine
  • Crée un workflow, sauvegarde-le
  • Va dans Supabase et vérifie si les tables n8n_workflow_entity, etc. sont créées

🎉 Si oui : connexion réussie !


🧠 Bonnes pratiques & rappels de sécurité

Astuce Pourquoi
🔒 Ne jamais exposer le port 5432 en public Un scan de port, et ta base est compromise
🥳 Utiliser WireGuard Crée un tunnel chiffré invisible pour les échanges

🌟 Ce que tu gagnes

  • Une base Supabase privée, accessible uniquement via VPN
  • Un n8n connecté directement à PostgreSQL, sans brique intermédiaire
  • Une architecture scalable avec VPS agent / maître
  • Et surtout… la tranquillité d’esprit 🔐

Tu n'as pas encore mis en place ton VPN pour laisser tes VPS communiquer entre eux de manière sécurisée ? ➡️ Suis le guide

Besoin d’un coup de main pour cette partie technique ?

Je sais que parfois, même bien expliqué, un workflow reste intimidant.
Si tu préfères qu’on le mette en place ensemble, contacte-moi : je suis freelance en automatisation, et je peux t’aider à passer de “je devrais le faire” à “c’est déjà en place”.

Sinon, continue de piocher dans les ressources du site, elles sont faites pour ça ✌️