Nomploy Nomad Packs

← All packs

n8n v0.1.0

Automation

n8n — a fair-code workflow automation tool (400+ integrations, visual editor, webhooks, scheduling). Deployed as a host-networked Nomad service with a persistent Docker volume; uses the bundled SQLite database for a zero-dependency single-node setup.

nomad-pack run n8n --registry nomploy
2 tasks http 5678 1 volume image n8nio/n8n:latest
Variables 13
values.hcl

Save as values.hcl, edit, then run:

nomad-pack run n8n -f values.hcl --registry nomploy
# The name of the Nomad job.
job_name = "n8n"

# The Nomad namespace to deploy into.
namespace = "default"

# The datacenters to deploy to.
datacenters = ["*"]

# The n8n container image.
image = "n8nio/n8n:latest"

# Host port for the n8n editor / webhook listener.
port = 5678

# Public hostname n8n is served at (e.g. n8n.example.com), used in generated URLs. Empty = derive from the request.
host = ""

# Public base URL for webhooks (e.g. https://n8n.example.com/). Set this when fronting n8n with a domain, or externally-triggered webhooks won't route. Empty = use host:port.
webhook_url = ""

# Key used to encrypt stored credentials. Leave empty and n8n generates one and persists it in the data volume (fine for single-node). Set it explicitly if you need to restore credentials onto a fresh volume — and treat it as a secret.
encryption_key = ""

# Default timezone for schedules (e.g. Europe/Bratislava).
timezone = "UTC"

# Require the n8n session cookie to be HTTPS-only. Keep false to log in over plain http://<ip>:<port>; set true when serving n8n over HTTPS (e.g. behind a TLS proxy).
secure_cookie = false

# Docker named volume for /home/node/.n8n (SQLite DB, encryption key, config). A prestart task chowns it to uid 1000 (the `node` user) so n8n can write it.
data_volume = "n8n_data"

# Placement constraints — pin to one node so the local volume stays put. On a nomploy cluster: attribute = "$${meta.nomploy_control_plane}", operator = "=", value = "true".
constraints = []

# The task resources.
resources = {
    cpu    = 500
    memory = 512
  }
NameTypeDefaultDescription
job_name string
"n8n"
The name of the Nomad job.
namespace string
"default"
The Nomad namespace to deploy into.
datacenters list
["*"]
The datacenters to deploy to.
image string
"n8nio/n8n:latest"
The n8n container image.
port number
5678
Host port for the n8n editor / webhook listener.
host string
""
Public hostname n8n is served at (e.g. n8n.example.com), used in generated URLs. Empty = derive from the request.
webhook_url string
""
Public base URL for webhooks (e.g. https://n8n.example.com/). Set this when fronting n8n with a domain, or externally-triggered webhooks won't route. Empty = use host:port.
encryption_key key string
""
Key used to encrypt stored credentials. Leave empty and n8n generates one and persists it in the data volume (fine for single-node). Set it explicitly if you need to restore credentials onto a fresh volume — and treat it as a secret.
timezone string
"UTC"
Default timezone for schedules (e.g. Europe/Bratislava).
secure_cookie bool
false
Require the n8n session cookie to be HTTPS-only. Keep false to log in over plain http://<ip>:<port>; set true when serving n8n over HTTPS (e.g. behind a TLS proxy).
data_volume string
"n8n_data"
Docker named volume for /home/node/.n8n (SQLite DB, encryption key, config). A prestart task chowns it to uid 1000 (the `node` user) so n8n can write it.
constraints list
[]
Placement constraints — pin to one node so the local volume stays put. On a nomploy cluster: attribute = "$${meta.nomploy_control_plane}", operator = "=", value = "true".
resources object
{
    cpu    = 500
    memory = 512
  }
The task resources.
Readme

n8n

n8n — a fair-code workflow automation tool: a visual editor, 400+ integrations, webhooks, and scheduling to wire your services together. Deployed as a host-networked Nomad service with a persistent Docker volume, using the bundled SQLite database (no external dependency) — ideal for a single node.

Usage

nomad-pack registry add nomploy github.com/Nomploy/nomad-packs
nomad-pack run n8n --registry nomploy

In nomploy: create a Compose service, type Nomad Pack, pack n8n, custom registry github.com/Nomploy/nomad-packs, then Deploy.

Open http://<node-ip>:5678 and create the owner account on first visit.

Key variables

Variable Default Notes
image n8nio/n8n:latest Pin a tag in production.
port 5678 Editor + webhook listener.
host / webhook_url "" Set when fronting with a domain so generated URLs / webhooks are correct.
encryption_key "" Empty = auto-generated and persisted in the volume. Back it up — credentials can't be restored without it.
secure_cookie false Keep false for http://<ip> login; set true behind HTTPS.
timezone UTC e.g. Europe/Bratislava.
data_volume n8n_data SQLite DB + encryption key. Back it up.
constraints [] Pin to a node so the local volume stays put.

Notes