NAS Synology : auto-héberger Activepieces, l’alternative à Zapier
Sommaire
I. Présentation
Dans ce tutoriel, nous allons voir comment auto-héberger la solution Activepieces sur un NAS Synology, à l'aide de Docker. Cette solution, présentée en détail dans un précédent article, est une alternative open source au service Zapier, que vous pouvez utiliser pour créer des workflows "no-code".
Pour suivre ce tutoriel, vous avez besoin d'un NAS Synology sur lequel Container Manager (Docker) est installé. Vous devez aussi être en mesure d'exposer votre application sur le Web pour utiliser tous les services (notamment la partie Webhooks). Un nom de domaine "synology.me" obtenu via DDNS est suffisant. Pour vous aider, voici quelques ressources :
- NAS Synology - Guide de prise en main de Container Manager
- NAS Synology - Utiliser un certificat SSL Let’s Encrypt
Découvrez ce tutoriel au format vidéo :
II. Préparer le reverse proxy
Ici, nous partons du principe que le NAS est déjà accessible à l'adresse suivante : https[:]//itc14.synology.me:65002. Notre idée sera d'accéder à Activepieces via l'URL suivante : https[:]//activepieces.itc14.synology.me:65002.
Suivez les étapes suivantes :
1 - Accédez à DSM et ouvrez le "Panneau de configuration".
2 - Cliquez ensuite sur "Portail de connexion", sur "Avancé" puis sur "Proxy inversé". Créez une nouvelle règle.
3 - Renseignez les différentes propriétés pour configurer le reverse proxy pour cet hôte. L'exemple suivant est basé sur l'URL évoquée précédemment, ainsi que sur l'utilisation du port 3002 pour accéder au conteneur Activepieces.
4 - Cliquez sur "Sauvegarder" quand la configuration est terminée.
5 - Cliquez sur l'onglet "En-tête personnalisé" et ajoutez une nouvelle entrée en cliquant sur "Créer" puis sur "WebSocket". Sans cette action, il ne sera pas possible de profiter pleinement d'Activepieces, car certains services ne fonctionneront pas (Azure OpenAI, par exemple). La connexion au WebSocket remontera en erreur dans l'application. Configurez l'en-tête de cette façon :
Voilà, vous pouvez désormais sauvegarder. La première étape est terminée.
III. Créer les dossiers pour les conteneurs Activepieces
À partir de DSM, vous devez créer un répertoire "activepieces" dans le dossier partagé "docker", puis à l'intérieur, créez trois dossiers :
- cache
- database
- redis
Ces répertoires seront mappés dans les conteneurs par la suite. Ce qui donne :
IV. Créer le projet Docker Activepieces sur un NAS
Dernière étape du déploiement : la création des conteneurs. L'application Activepieces s'appuie sur 3 conteneurs (activepieces, redis, postgresql). Ouvrez "Container Manager", cliquez sur "Projet" puis créez un nouveau projet.
Commencez par nommer le projet, indiquez le chemin correspondant au dossier "/docker/activepieces" et créez un nouveau fichier Docker Compose.
Vous devez indiquer ce code dans le fichier Docker Compose. Il s'agit de la version officielle que j'ai réutilisée et modifiée afin d'intégrer les variables d'environnement directement dans le fichier YAML (par défaut, un fichier externe ".env" est utilisé).
version: '3.0'
services:
activepieces:
image: ghcr.io/activepieces/activepieces:0.42.0
container_name: activepieces
restart: unless-stopped
ports:
- '3002:80'
depends_on:
- postgres
- redis
volumes:
- /volume1/docker/activepieces/cache:/usr/src/app/cache:rw
environment:
AP_ENGINE_EXECUTABLE_PATH: dist/packages/engine/main.js
AP_API_KEY: b91c9327c8df4f715c3ddbbf06d5220bec438cb456eff832aea31cd81c39339e0ac8bb9c1a7040fca98a0d68f44bbce34c4ff1c19333f07c200292623d5fb940
AP_ENCRYPTION_KEY: fc8680aa0b4e1edce6c7f7ce344877c2
AP_JWT_SECRET: ee47441d528de4cee288273111728fe727bdeb00709e5b7b8748fce24b978bb6
AP_ENVIRONMENT: prod
AP_FRONTEND_URL: https://activepieces.itc14.synology.me:65002
AP_WEBHOOK_TIMEOUT_SECONDS: 30
AP_TRIGGER_DEFAULT_POLL_INTERVAL: 5
AP_POSTGRES_DATABASE: activepieces
AP_POSTGRES_HOST: postgres
AP_POSTGRES_PORT: 5432
AP_POSTGRES_USERNAME: postgres
AP_POSTGRES_PASSWORD: e03e3bb03413ea9af5d0755dc2d2e94865b8bb30d159cf38b80ea42304ab80ce
AP_EXECUTION_MODE: UNSANDBOXED
AP_REDIS_HOST: redis
AP_REDIS_PORT: 6379
AP_FLOW_TIMEOUT_SECONDS: 600
AP_TELEMETRY_ENABLED: false
AP_TEMPLATES_SOURCE_URL: "https://cloud.activepieces.com/api/v1/flow-templates"
networks:
- activepieces
postgres:
image: 'postgres:14.4'
container_name: postgres
restart: unless-stopped
environment:
POSTGRES_DB: activepieces
POSTGRES_USER: postgres
POSTGRES_PASSWORD: e03e3bb03413ea9af5d0755dc2d2e94865b8bb30d159cf38b80ea42304ab80ce
volumes:
- /volume1/docker/activepieces/database:/var/lib/postgresql/data:rw
networks:
- activepieces
redis:
image: 'redis:7.0.7'
container_name: redis
restart: unless-stopped
volumes:
- /volume1/docker/activepieces/redis:/data:rw
networks:
- activepieces
networks:
activepieces:
Ce code correspond à la déclaration des trois conteneurs. Certaines valeurs sont à adapter. Vous devez notamment personnaliser tous les mots de passe : AP_API_KEY
, AP_ENCRYPTION_KEY
, AP_JWT_SECRET
et AP_POSTGRES_PASSWORD
. Vous devez utiliser la même valeur pour POSTGRES_PASSWORD
et AP_POSTGRES_PASSWORD
pour que la connexion à la base de données PostgreSQL soit opérationnelle.
Regardez attentivement aussi ces directives :
volumes
: assurez-vous que le chemin de chaque volume (x3) est correct.AP_FRONTEND_URL
: indiquez l'adresse à laquelle sera joignable votre instance Activepieces.
Les autres options n'ont pas vocation à être nécessairement modifiées. Quand c'est tout bon pour vous, poursuivez et validez la création des conteneurs. Patientez... Container Manager va télécharger les images Docker et construire les conteneurs.
Trois conteneurs seront associés au projet. Patientez 5 bonnes minutes avant de tenter une connexion à l'interface web, car l'initialisation de l'application prend du temps. Comme vous pouvez le voir, ce projet consomme près de 500 Mo de RAM, il convient donc d'avoir un NAS qui tient la route.
Ensuite, vous devez tenter une connexion à Activepieces en utilisant l'URL choisie depuis le départ. Vous devriez arriver sur un formulaire d'inscription : créez un compte administrateur sur votre instance locale.
Vous n'avez plus qu'à profiter de votre instance Activepieces et à créer vos premiers workflows ! Si besoin, consultez notre article de présentation de la solution pour en savoir plus sur son utilisation.
V. Conclusion
En suivant ce tutoriel, vous devriez être en mesure d'auto-héberger Activepieces sur votre NAS Synology ! Si vous utilisez une autre marque de NAS, que ce soit Asustor, QNAP ou autre chose, vous devriez pouvoir faire la même chose en adaptant quelques étapes de la configuration. Le Docker Compose sera le même.
Voilà encore une superbe solution à auto-héberger sur votre NAS Synology, toujours dans cet esprit DIY.
Qu'en pensez-vous ?
Merci pour cet article !
Juste le dernier lien fourni pour découvrir Zapier est mort.
Grand merci pour ce tuto.
Je viens de le tester mais j’ai un problème avec de connexion avec certains flux.
il n’ay aurais pas d’autres ports à ouvrir pour que tous fonctionne sur le NAS ?
Car quand je fais les mêmes flux sur la version cloud tout fonctionne.
D’avance merci
Hello Tony,
Le WebSocket est-il opérationnel ? J’ai eu ce problème au début, il était HS, donc certaines intégrations ne fonctionnaient pas.