25/03/2025

NAS

NAS Synology : auto-héberger Activepieces, l’alternative à Zapier

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 :

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 ?

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

3 commentaires sur “NAS Synology : auto-héberger Activepieces, l’alternative à Zapier

  • Merci pour cet article !
    Juste le dernier lien fourni pour découvrir Zapier est mort.

    Répondre
  • 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

    Répondre
    • 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.

      Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.