563 lines
13 KiB
JSON
563 lines
13 KiB
JSON
{
|
|
"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
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|