Files
runtipi-appstore/apps/n8n-sandbox/metadata/description.md
T
2026-09-02 17:22:03 +02:00

2.0 KiB

n8n Sandbox Service

Sandbox auto-hébergé pour l'AI Assistant de n8n (setup « Self-host the sandbox manually » de la doc n8n). L'app déploie les trois services de la stack officielle :

Service Rôle
sandbox-certs Job one-shot : génère la CA privée et les certificats mTLS, puis s'arrête.
sandbox-api Point d'entrée HTTP (:8080) que n8n appelle pour exécuter du code.
sandbox-runner-1 Docker-in-Docker privileged : crée et exécute les conteneurs sandbox.

Après l'installation

Dans l'app n8n (paramètres ou app.env), ajouter :

N8N_ENABLED_MODULES=instance-ai
N8N_INSTANCE_AI_SANDBOX_ENABLED=true
N8N_INSTANCE_AI_SANDBOX_PROVIDER=n8n-sandbox
N8N_INSTANCE_AI_SANDBOX_IMAGE=n8nio/n8n-sandbox-service-sandbox:1.3.0
N8N_SANDBOX_SERVICE_URL=http://sandbox-api:8080
N8N_SANDBOX_SERVICE_API_KEY=<valeur du champ « Clé API sandbox »>

Puis redémarrer n8n et vérifier depuis son conteneur :

wget -qO- http://sandbox-api:8080/healthz    # {"status":"ok"}

Données persistantes

Tout est sous app-data/<store>/n8n-sandbox/data/ :

  • tls/ : certificats mTLS (contient la clé de la CA, à traiter comme un secret)
  • api/ : base SQLite de l'API
  • runner-state/ : base SQLite du runner
  • runner-docker/ : /var/lib/docker du DinD (cache de l'image sandbox, peut peser plusieurs Go ; vidable sans perte)

Sécurité

  • Aucun port n'est publié sur l'hôte. sandbox-api:8080 est joignable par les autres apps Runtipi via tipi_main_network, protégé uniquement par la clé API.
  • Le runner est privileged : équivalent root sur l'hôte. Ne jamais l'exposer.
  • n8n recommande cette stack pour le développement/test et Daytona pour la production.

Notes

  • Les noms sandbox-api et sandbox-runner-1 sont les SAN des certificats : ne pas les renommer.
  • Les certificats ne se renouvellent pas seuls. Pour les régénérer, supprimer data/tls/ et redémarrer l'app.
  • L'image sandbox est téléchargée par le runner au premier usage.