{ "slug": "n8n-swarm", "kind": "swarm", "metadata": { "name": "N8N", "description": "Source-available workflow automation tool that connects apps and services to automate tasks through a visual drag-and-drop node editor.", "tags": [ "traefik", "database" ], "icon": { "provider": "selfhst", "id": "n8n" }, "draft": true, "version": { "name": "2.20.0", "source_dep_name": "n8nio/n8n", "source_dep_version": "2.20.0" } }, "variables": [ { "title": "General", "name": "general", "items": [ { "name": "service_name", "type": "str", "title": "Service Name", "required": false, "default": "n8n", "config": { "placeholder": "n8n" } }, { "name": "container_timezone", "type": "str", "title": "Container Timezone", "required": false, "config": { "placeholder": "Europe/Berlin" } }, { "name": "container_loglevel", "type": "enum", "title": "Log Level", "required": false, "config": { "options": [ "debug", "info", "warn", "error" ] } }, { "name": "traefik_tls_entrypoint", "type": "str", "title": "Traefik Tls Entrypoint", "required": false, "default": "", "needs": [ "traefik_enabled=true", "traefik_tls_enabled=true" ], "config": { "placeholder": "websecure" } }, { "name": "database_password_secret_name", "type": "str", "title": "DB Password Secret", "required": false, "default": "", "needs": [ "database_enabled=true" ], "config": { "placeholder": "n8n-db-password" } }, { "name": "encryption_key_secret_name", "type": "str", "title": "Encryption Key Secret", "required": false, "default": "", "config": { "placeholder": "n8n-encryption-key" } }, { "name": "traefik_entrypoint", "type": "str", "title": "Traefik Entrypoint", "required": false, "default": "", "needs": [ "traefik_enabled=true", "traefik_tls_enabled=false" ], "config": { "placeholder": "web" } } ] }, { "title": "Queue Mode", "name": "queue", "toggle": "queue_enabled", "items": [ { "name": "queue_enabled", "type": "bool", "title": "Queue Mode", "required": false, "default": false, "description": "Enable queue mode (requires Redis)" }, { "name": "queue_redis_external", "type": "bool", "title": "External Redis", "required": false, "default": false, "needs": [ "queue_enabled=true" ] }, { "name": "queue_redis_host", "type": "str", "title": "Redis host", "required": false, "default": "redis", "needs": [ "queue_enabled=true" ], "config": { "placeholder": "redis" } }, { "name": "queue_redis_port", "type": "int", "title": "Redis port", "required": false, "default": 6379, "needs": [ "queue_enabled=true" ], "config": { "placeholder": "6379" } }, { "name": "queue_embedded_worker", "type": "bool", "title": "Embedded Worker", "required": false, "default": false, "description": "Include embedded worker in this deployment", "needs": [ "queue_enabled=true" ] } ] }, { "title": "Database", "name": "database", "toggle": "database_enabled", "items": [ { "name": "database_enabled", "type": "bool", "title": "External Database", "required": false, "default": false }, { "name": "database_type", "type": "enum", "title": "Database type", "required": false, "default": "postgres", "needs": [ "database_enabled=true" ], "config": { "options": [ "postgres", "mysql" ] } }, { "name": "database_host", "type": "str", "title": "Database host", "required": false, "default": "postgres", "needs": [ "database_enabled=true" ], "config": { "placeholder": "postgres" } }, { "name": "database_port", "type": "int", "title": "Database port", "required": false, "default": 5432, "needs": [ "database_enabled=true" ], "config": { "placeholder": "5432" } }, { "name": "database_name", "type": "str", "title": "Database name", "required": false, "default": "n8n", "needs": [ "database_enabled=true" ], "config": { "placeholder": "n8n" } }, { "name": "database_user", "type": "str", "title": "Database username", "required": false, "default": "n8n", "needs": [ "database_enabled=true" ], "config": { "placeholder": "n8n" } }, { "name": "database_password", "type": "secret", "title": "Database password", "required": false, "needs": [ "database_enabled=true" ] } ] }, { "title": "Security", "name": "security", "items": [ { "name": "encryption_key", "type": "secret", "title": "Encryption Key", "required": false, "config": { "autogenerated": { "length": 64 } } }, { "name": "proxy_hops", "type": "int", "title": "Proxy Hops", "required": false, "default": 1, "description": "Number of proxy hops (X-Forwarded-For)", "config": { "placeholder": "1", "unit": "hops" } } ] }, { "title": "Webhooks", "name": "webhooks", "items": [ { "name": "webhook_url", "type": "str", "title": "Webhook base URL", "required": false, "default": "", "description": "Base URL used for webhooks.", "config": { "placeholder": "https://n8n.home.arpa/" } } ] }, { "title": "Metrics", "name": "metrics", "toggle": "metrics_enabled", "items": [ { "name": "metrics_enabled", "type": "bool", "title": "Prometheus", "required": false, "default": false }, { "name": "metrics_detailed", "type": "bool", "title": "Detailed Metrics", "required": false, "default": false, "description": "Include detailed metrics (workflows, nodes, API endpoints)", "needs": [ "metrics_enabled=true" ] } ] }, { "title": "Execution Settings", "name": "execution", "items": [ { "name": "execution_save_on_error", "type": "enum", "title": "Save on Error", "required": false, "default": "all", "description": "Save execution data on error", "config": { "options": [ "all", "none" ] } }, { "name": "execution_save_on_success", "type": "enum", "title": "Save on Success", "required": false, "default": "none", "description": "Save execution data on success", "config": { "options": [ "all", "none" ] } } ] }, { "title": "Network", "name": "network", "items": [ { "name": "network_mode", "type": "enum", "title": "Network Mode", "required": false, "default": "bridge", "config": { "options": [ "bridge", "host" ] } }, { "name": "network_name", "type": "str", "title": "Network Name", "required": false, "default": "n8n_network", "config": { "placeholder": "n8n_network" }, "needs": [ "network_mode=bridge" ] }, { "name": "network_external", "type": "bool", "title": "External Network", "required": false, "default": false, "needs": [ "network_mode=bridge" ] } ] }, { "title": "Traefik", "name": "traefik", "toggle": "traefik_enabled", "items": [ { "name": "traefik_enabled", "type": "bool", "title": "Traefik Enabled", "required": false, "default": false, "needs": [ "network_mode=bridge" ] }, { "name": "traefik_host", "type": "str", "title": "Host", "required": true, "config": { "placeholder": "n8n" } }, { "name": "traefik_webhook_host", "type": "str", "title": "Webhook Host", "required": false, "default": "", "description": "Separate hostname for webhooks (optional)", "needs": [ "traefik_enabled=true" ], "config": { "placeholder": "hooks.n8n.home.arpa" } }, { "name": "traefik_network", "type": "str", "title": "Traefik network name", "required": false, "default": "traefik", "needs": [ "traefik_enabled=true" ], "config": { "placeholder": "traefik" } }, { "name": "traefik_network_external", "type": "bool", "title": "External Traefik Network", "required": false, "default": true, "needs": [ "traefik_enabled=true" ] }, { "name": "traefik_domain", "type": "str", "title": "Domain", "required": true, "config": { "placeholder": "home.arpa" } } ] }, { "title": "Ports", "name": "ports", "items": [ { "name": "ports_http", "type": "int", "title": "External HTTP port", "required": false, "default": 5678, "needs": [ "traefik_enabled=false", "network_mode=bridge" ], "config": { "placeholder": "5678" } } ] }, { "title": "Swarm", "name": "swarm", "items": [ { "name": "swarm_replicas", "type": "int", "title": "Replicas", "required": false, "default": 1, "config": { "slider": true, "min": 1, "max": 20, "step": 1, "placeholder": "1", "unit": "replicas" } }, { "name": "swarm_placement_host", "type": "str", "title": "Placement Host", "required": false, "default": "", "description": "Target hostname for placement constraint", "config": { "placeholder": "swarm-node-1" } } ] }, { "title": "Traefik TLS", "name": "traefik-tls", "toggle": "traefik_tls_enabled", "items": [ { "name": "traefik_tls_certresolver", "type": "str", "title": "Cert Resolver", "required": true, "default": "cloudflare", "config": { "placeholder": "cloudflare" } }, { "name": "traefik_tls_enabled", "type": "bool", "title": "TLS", "required": false, "default": false } ] } ] }