n8n is distributed under the Sustainable Use License: internal business or personal use. Read the license before offering n8n to third parties. This template is a Vertra Cloud packaging and is not affiliated with n8n.
Requirements and plan
The first boot takes 25 to 60 seconds, because n8n creates its database.
Choose how n8n runs
The wizard asks How will n8n run? The choice decides what is created and how much memory it uses.
Postgres is the safe default: it handles concurrency better than SQLite and keeps the history out of the app’s disk.
In the workers mode a second question appears, Parallel executions on the worker (5 by default). More parallelism needs more worker memory.
Create n8n
1
Open the template
In the dashboard open Templates, pick n8n and click Use template. In the CLI:
vertra template deploy n8n --name my-n8n --set mode=postgres.2
Answer the wizard
Choose the mode, the time zone for schedules (America/Sao_Paulo, UTC, America/New_York or Europe/Lisbon) and the modules allowed in the Code node. Safe (default) allows only data and text modules; All also allows files, processes and network inside your own container.Optionally turn on email (SMTP) now: see Email for invitations.
3
Name it and create
Name the app, choose the workspace and folder, and click Create. When it finishes you get the app address and the next step. n8n generates its own secrets; you do not type any.
First access: create the owner
From then on, every other person who needs access is invited from Settings > Users.Your first workflow with a webhook
1
Create the flow
Click Create workflow and add a Webhook node. Set the method (for example
POST) and a path.2
Add a Code node
Add a Code node after the webhook and choose the language (next section).
3
Test, then activate
The Test URL works while you listen for a test event in the editor. To receive real calls, activate the workflow: the Production URL only answers while the workflow is active.
Webhook URLs
n8n builds the webhook addresses from the app’s public address: the production URL looks like<address>/webhook/<path> and the test URL <address>/webhook-test/<path>. Always copy the URL from the Webhook node instead of typing it. If the node shows an address you do not recognize, open the app’s variables and check that N8N_WEBHOOK_URL is the address shown in the outputs.
Webhooks are served by the editor, in every mode. Calls from the internet reach n8n over HTTPS; the request body can have up to 16 MiB.
Code in JavaScript and Python
The Code node runs in either language, in the same container, with no extra service.What you can import
With Safe modules (the default), only data and text modules are allowed:- Python:
json,re,datetime,math,random,statistics,collections,itertools,functools,string,time,uuid,base64,hashlib,hmac,decimal,fractions,textwrap,csv,io,copy,typing,html,zoneinfo,calendar,operator,bisect,heapq,secrets. - JavaScript:
crypto,url,path,util,zlib,buffer,querystring,string_decoder,events,stream,assertandmoment.
Import of standard library module ... is disallowed. To allow everything, change VERTRA_CODE_MODULES to all in the app’s variables and restart. All also lets the code touch files, processes and the network of your own container, so choose it only when you trust every flow that runs there.
Community nodes
Open Settings > Community nodes > Install and enter the npm package name. Installed nodes live in/app/.n8n/nodes and survive restarts and updates; in the workers mode the worker reinstalls them when it boots. Installing needs the app to reach the npm registry.
Email for invitations and password reset
Without SMTP, n8n cannot send invitations or reset emails. In the wizard, answer Yes, use my SMTP server and fill in:
With SMTP set up, Settings > Users > Invite sends the invitation by email. The Send Email node does not use this setting: it has its own credential in each flow.
Credentials and the encryption key
n8n stores the credentials of your flows (API keys, OAuth tokens) encrypted with a key. The template generates it once and keeps it in the app’s variables asN8N_ENCRYPTION_KEY; the editor and the worker use the same one.
Backups, updates and rollback
- Backups. The data is in the Postgres database (or in
/app/.n8nwith SQLite) and in the files under/app/.n8n. Use snapshots of the app and the database. For a portable copy of your flows, also export them from n8n. - Updates. New n8n versions arrive as new versions of the template. You see New version available and click Update; a safety snapshot is taken first.
- Rollback. n8n migrates its database when it updates, so going back always returns the data too: restore the safety snapshot taken before the update. Code-only rollback is blocked for this reason.
- Execution history is deleted after 7 days or 5,000 executions, whichever comes first.
Limits to know
- The workers mode creates one worker. The worker has no public address and talks only to Postgres and Redis.
- There are no dedicated webhook processors: the editor answers webhooks.
- Zero-downtime deploy is off and cannot be turned on: two copies of n8n in queue mode would both act as leader and polling triggers would run twice. Keep a single copy of the app.
- Editor memory use is about 300 to 540 MiB; the worker, 330 to 560 MiB.
- The Execute Command and Local File Trigger nodes ship disabled by n8n.
ffmpegis not in the image.
Common problems
Import of standard library module ... is disallowed
Import of standard library module ... is disallowed
The module is not on the safe list. Set
VERTRA_CODE_MODULES to all and restart, or avoid that module.The first Code call is slow
The first Code call is slow
Normal: the runner starts on demand and stops after 15 seconds idle. The next calls are fast.
The app never finishes booting
The app never finishes booting
Check that
N8N_ENCRYPTION_KEY in the app’s variables is the key n8n stored the first time. A different key stops the boot.A community node does not install
A community node does not install
The app has no outbound access to the npm registry, or there is no room left in
/app. Check the app log and the disk.Someone else created the owner account
Someone else created the owner account
Another person opened the address before you. Delete the app, create it again and open the address as soon as the deploy ends.
Related
n8n in the catalog
What the template creates and its variables.
Update and roll back
The safety snapshot and rollback with data.
Public page
The template in the public gallery.
Stacks
How the app, Postgres and Redis live together.