Pourquoi la licence n8n pose un problème aux agences
n8n a basculé vers la Sustainable Use License (SUL) en 2022 et l'a durcie en 2025. La clause centrale interdit d'utiliser n8n pour fournir un service commercial à des tiers sans accord préalable de l'éditeur. Pour une agence, cela couvre pratiquement tous ses cas d'usage : automatiser les workflows d'un client, revendre un accès à une instance mutualisée, ou facturer des heures de mise en place sur une instance hébergée pour le compte d'un client. La SUL précise explicitement : « You may not make the functionality of the Software available to third parties as a service. » Cette formulation englobe les scénarios SaaS internes multi-clients, les dashboards blancs, et les intégrations livrées en nom propre. La conséquence pratique : une agence sérieuse doit soit négocier une licence commerciale avec n8n (coût et délais variables), soit chercher une alternative réellement open source. Activepieces se positionne exactement sur ce créneau : même paradigme visuel de flow builder, licence MIT sans restriction d'usage commercial, et un écosystème de connecteurs qui couvre les intégrations courantes des agences.
Ce que la licence MIT d'Activepieces change concrètement
- Usage client sans restriction — vous déployez Activepieces pour chacun de vos clients, vous facturez vos heures de configuration, vous revendez l'accès : aucune clause ne l'interdit.
- Fork et personnalisation — vous pouvez modifier le code source, rebaptiser l'interface, embarquer Activepieces dans votre propre offre, sans demander d'autorisation.
- Pas de licence commerciale à négocier — zéro coût de licence, zéro délai administratif, zéro risque de changement de conditions lors d'un renouvellement.
- Auditabilité totale — votre client peut inspecter le code qui traite ses données ; c'est un argument de vente pour les secteurs réglementés (juridique, santé, finance).
- Contributions de la communauté — la MIT attire plus de contributeurs que la SUL ; le rythme de sortie de nouveaux connecteurs en bénéficie directement.
- Portabilité des données — l'export de flows au format JSON standard n'est soumis à aucune restriction ; la migration entre instances ou vers un fork reste possible à tout moment.
- Hébergement multi-cloud — vous choisissez votre datacenter, votre cloud provider ou votre datacenter privé sans devoir informer l'éditeur.
Prérequis système avant le déploiement
Activepieces tourne en deux services principaux : le serveur Node.js et une base PostgreSQL. Pour une instance d'agence servant jusqu'à cinq clients simultanés, comptez au minimum 2 vCPU et 4 Go de RAM — la même base que pour n8n, mais Activepieces intègre un moteur de sandbox pour les pièces personnalisées (code TypeScript exécuté dans un worker isolé) qui consomme de la mémoire supplémentaire en pic. En production avec le mode sandbox activé, 8 Go de RAM permettent de traiter des flows complexes sans pression mémoire. Côté stockage, prévoyez 20 Go minimum pour les logs d'exécution et les pièces jointes ; un volume séparé pour PostgreSQL facilitera les sauvegardes. Les ports à ouvrir en entrée : 80 et 443 pour le reverse proxy, 5432 fermé au public (base locale). Activepieces n'a pas besoin de Redis en configuration de base ; Redis devient utile uniquement si vous activez le mode distribué (plusieurs workers). Vérifiez que Docker Engine ≥ 24 et Docker Compose ≥ 2.20 sont installés : docker --version et docker compose version.
Déployer Activepieces via Docker Compose
Créer le dossier de travail
Connectez-vous à votre VPS et créez un répertoire dédié :
mkdir -p /opt/activepieces && cd /opt/activepiecesTélécharger le fichier Compose officiel
Récupérez le
docker-compose.ymldepuis le dépôt officiel :curl -fsSL https://raw.githubusercontent.com/activepieces/activepieces/main/docker-compose.yml -o docker-compose.ymlCréer le fichier d'environnement
Générez une clé d'encryption et renseignez les variables essentielles :
cp .env.example .env 2>/dev/null || touch .env
Puis éditez.envavec au minimum :AP_ENCRYPTION_KEY=$(openssl rand -hex 16)AP_JWT_SECRET=$(openssl rand -hex 32)AP_FRONTEND_URL=https://automations.votredomaine.comAP_POSTGRES_PASSWORD=$(openssl rand -hex 24)Lancer les conteneurs
Démarrez la stack en arrière-plan :
docker compose up -d
Vérifiez que les deux services sonthealthy:docker compose psConfigurer le reverse proxy Nginx
Créez
/etc/nginx/sites-available/activepiecesavec le bloc suivant (adaptez leserver_name) :server { listen 443 ssl; server_name automations.votredomaine.com; location / { proxy_pass http://127.0.0.1:8080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; } }
Activez et rechargez :ln -s /etc/nginx/sites-available/activepieces /etc/nginx/sites-enabled/ && nginx -t && systemctl reload nginxObtenir un certificat TLS
Avec Certbot :
certbot --nginx -d automations.votredomaine.com --non-interactive --agree-tos -m [email protected]Créer le premier compte administrateur
Ouvrez
https://automations.votredomaine.comdans votre navigateur. L'assistant de première connexion vous invite à créer le compte admin. Renseignez une adresse e-mail et un mot de passe fort (≥ 16 caractères).Vérifier la version et activer les mises à jour
Contrôlez la version déployée dans Paramètres → À propos. Pour mettre à jour :
docker compose pull && docker compose up -d
Planifiez cette commande en cron hebdomadaire pour rester sur une version patchée.
Connecter un agent IA via MCP
Le support MCP (Model Context Protocol) est disponible en disponibilité générale dans Activepieces depuis mars 2025, avec le protocole Streamable HTTP ajouté en décembre 2025. Il expose chaque flow Activepieces comme un outil MCP appelable par n'importe quel client compatible — Claude Desktop, l'API Anthropic avec tools, ou un agent GPT-4o via l'interface tools d'OpenAI. Dans la pratique, un flow Activepieces devient un outil que votre agent peut invoquer par son nom : create-crm-contact, send-slack-alert, sync-airtable-row. Pour activer MCP sur une instance Docker, ajoutez dans votre .env : AP_MCP_ENABLED=true. Après redémarrage (docker compose up -d), Activepieces génère un endpoint MCP à l'adresse https://automations.votredomaine.com/api/v1/mcp. Dans Claude Desktop, ajoutez ce serveur dans votre fichier de configuration MCP avec l'URL et la clé API d'un compte de service Activepieces. L'agent peut alors lister les flows disponibles et en déclencher un avec des paramètres structurés, sans aucun webhook manuel à configurer. Côté GPT-4o, le même endpoint est compatible avec le schéma tools de l'API OpenAI : définissez l'URL et la clé API dans votre appel chat.completions.create et le modèle peut appeler vos automatisations comme des fonctions natives.
La question des connecteurs : 280 ou 500 ?
Activepieces propose environ 280 connecteurs officiels contre environ 500 pour n8n — un écart réel, qu'il est honnête de mentionner. Dans la pratique cependant, la plupart des agences mobilisent rarement plus d'une trentaine de connecteurs sur une instance donnée : CRM, Slack, webhooks entrants, e-mail, Google Sheets, Airtable, Notion. Pour ces cas, le catalogue d'Activepieces est complet. Lorsqu'un connecteur manque, le SDK de pièces TypeScript permet de l'écrire en quelques heures : la structure est documentée, le worker sandbox prend en charge le cycle de vie, et la pièce custom est versionnée comme n'importe quel code. La vraie question n'est donc pas « combien au catalogue » mais « est-ce que le connecteur dont j'ai besoin est là aujourd'hui » — et pour les intégrations quotidiennes des agences, la réponse est oui.
Activepieces vs n8n vs Make — comparatif pour agences
Faites défiler le tableau
| Activepieces | n8n | Make | |
|---|---|---|---|
| Licence | MIT — usage commercial libre | Sustainable Use License — usage tiers restreint | SaaS propriétaire — pas de self-hosting |
| Support MCP natif | Oui (GA mars 2025, Streamable HTTP déc. 2025) | Non (plugins tiers expérimentaux) | Non |
| Nombre de connecteurs | ~280 connecteurs officiels + SDK pièces custom | ~500 connecteurs officiels | ~1 500 connecteurs (SaaS uniquement) |
| Self-hosting | Docker Compose, Kubernetes, Railway | Docker, npm, Kubernetes | Non disponible |
| Modèle de prix self-hosted | Gratuit (MIT) | Gratuit (fair-code) puis licence commerciale pour usage tiers | abonnement mensuel Business minimum (sans option self-hosting) / mois minimum |
| Éditeur visuel | Oui, canvas drag-and-drop | Oui, canvas drag-and-drop | Oui, canvas scénarios |
| Exécution de code custom | TypeScript dans worker sandboxé | JavaScript/Python dans node code | Non (modules HTTP uniquement) |
Sauvegarder la base PostgreSQL d'Activepieces
Toute la configuration (flows, credentials, logs d'exécution) vit dans PostgreSQL. Une sauvegarde quotidienne suffit pour la plupart des agences. Ajoutez cette ligne à votre crontab (crontab -e) :0 3 * * * docker exec activepieces-postgres pg_dump -U activepieces activepieces | gzip > /opt/backups/activepieces-$(date +%Y%m%d).sql.gz
Testez la restauration au moins une fois sur une instance de développement : gunzip -c activepieces-20261001.sql.gz | docker exec -i activepieces-postgres psql -U activepieces activepieces. Conservez au minimum sept sauvegardes glissantes et transférez-les hors du VPS (S3, Backblaze, rsync vers un serveur secondaire).
Dépannage — erreurs courantes
Error: ENCRYPTION_KEY is not set — la variable AP_ENCRYPTION_KEY est absente ou vide dans votre .env. Générez une valeur avec openssl rand -hex 16 et redémarrez la stack. Ne réutilisez pas la même clé entre deux instances distinctes : les credentials chiffrés deviendraient illisibles sur l'autre instance.
Connection refused sur le port 8080 — le conteneur activepieces a démarré mais n'écoute pas encore. Consultez les logs : docker compose logs activepieces --tail=50. La cause la plus fréquente est une base PostgreSQL non prête : Activepieces attend la disponibilité de la base au démarrage, mais un redémarrage brutal peut mettre PostgreSQL plus longtemps à se remettre en ligne. Relancez simplement docker compose restart activepieces.
MCP endpoint returns 401 — l'agent IA envoie soit une clé API expirée, soit une clé associée à un compte sans permission d'accès MCP. Dans Activepieces, allez dans Paramètres → Clés API, régénérez la clé du compte de service, et vérifiez que ce compte a le rôle OPERATOR ou ADMIN sur le projet concerné.
Flow execution stuck on sandbox step — le worker sandbox est en attente d'une ressource CPU. Vérifiez la charge avec docker stats : si le conteneur activepieces est à 100 % CPU pendant plus de trente secondes, votre VPS est sous-dimensionné pour le volume de flows simultanés. Augmentez à 4 vCPU ou limitez le parallélisme dans les paramètres de projet Activepieces (Paramètres → Projet → Exécutions parallèles max).
Prochaines étapes et ressources complémentaires
Votre instance Activepieces est opérationnelle et connectée à vos agents IA. La prochaine étape naturelle est d'organiser vos flows par projet client et de mettre en place un système de versioning (export JSON + dépôt Git). Si vous gérez plusieurs clients sur la même instance, explorez les espaces de travail (Workspaces) d'Activepieces qui permettent une séparation des flows, des credentials et des logs par client. Pour aller plus loin sur les sujets abordés dans cet article, consultez nos guides complémentaires : [Installer Activepieces sur un VPS](/blog/installer-activepieces-vps) pour un guide d'installation de zéro, [Installer n8n sur un VPS](/blog/installer-n8n-vps) si vous voulez évaluer les deux solutions côte à côte, [Zapier vs n8n : coût et migration](/blog/zapier-vs-n8n-cout-migration-2026) pour le calcul de ROI complet, et [Déployer un serveur MCP IA auto-hébergé sur VPS](/blog/mcp-serveur-ia-auto-heberge-vps) pour approfondir l'architecture multi-agents.