Skip to content
Odinex Cloud
n8n
Automation

n8n

Self-hosted workflow automation.

Self-hosted n8n workflow automation with PostgreSQL and automatic HTTPS on Ubuntu 24.04. Your owner account is created on first boot; no per-execution fees.

Opens the Odinex console with n8n selected. No licence fee: you pay for the server only.

Base image
Ubuntu 24.04 LTS
Minimum
2 GB RAM · 20 GB disk
Recommended plan
S2 (2 vCPU · 4 GB RAM · 60 GB NVMe)
Ready after boot
3 to 10 minutes (the first start runs database migrations)
Image slug
n8n

About n8n

n8n is a workflow automation tool that connects APIs, databases, SaaS products and AI models with a visual editor, and lets you drop into JavaScript or Python when you need to. Self-hosting means unlimited workflows and executions for the price of the server, and credentials that never leave it.

This image runs n8n with a PostgreSQL 16 database behind Caddy, which serves it over HTTPS. On first boot the server generates its own encryption key and database password and creates the owner account, so the public setup page is never left open.

What’s included

Software installed on the image and the ports it uses.

Software
ComponentVersion
Ubuntu24.04 LTS
n8nLatest release at image build time (official image)
PostgreSQL16
Caddy2 (automatic HTTPS)
Docker Engine and ComposeFrom Docker's repository
Ports
PortProtocolUsed for
22TCPSSH
80TCPHTTP (redirects to HTTPS, certificate validation)
443TCP + UDPHTTPS: editor, API and webhooks

Who it’s for

  • Operations and growth teams automating work between SaaS tools
  • Developers building integrations, webhooks and internal tools
  • Teams building AI agents and LLM pipelines that must keep data in the EU

Use cases

  • Business process automation

    Sync CRMs, spreadsheets, ticketing and billing systems on a schedule or on events.

  • AI agents and LLM pipelines

    Chain model calls, vector stores and tools with n8n's AI nodes, with credentials stored on your server.

  • Webhooks and API integrations

    Receive webhooks at https://<your-host>/webhook/... and turn them into actions in other systems.

Resources

n8n needs at least 2 GB of RAM and a 20 GB disk. Every plan includes an NVMe disk and 20 TB of traffic.

Smallest plan

S1

  • 1 vCPU (shared)
  • 2 GB RAM
  • 40 GB NVMe disk

The smallest plan that meets the minimum.

Recommended

S2

  • 2 vCPU (shared)
  • 4 GB RAM
  • 60 GB NVMe disk

A comfortable size for regular use.

S1 handles light workflows. Choose S2 for regular production use, and more RAM if workflows process large files or many items at once. You can resize the server later. See current prices.

Getting started after deploy

  1. Wait for the first start

    On first boot n8n migrates its database before it accepts requests, which takes a few minutes on a small server. The server's log is in /var/log/nexoran-app.log.

  2. Find your address and password

    The address, user name and password are written to /root/APP-INFO.txt and printed when you log in over SSH as root. If you created the server with a root password and it meets n8n's policy (8 or more characters with an upper-case letter and a digit), the app uses that same password, so you can sign in with what the console showed you at creation. If you used an SSH key (or the password does not meet the policy), a strong password is generated for this server and written to /root/APP-INFO.txt.

    ssh [email protected]
    cat /root/APP-INFO.txt
  3. Sign in

    Open the address and sign in with the email admin@<your-host> and your password. Until you add your own domain, the app is served at https://<your-ip-with-dashes>.sslip.io (for example https://203-0-113-10.sslip.io), a public wildcard DNS name that resolves to your server, with a Let's Encrypt certificate obtained automatically. Opening the bare IP address redirects there. Change the email to your own under Settings → Personal.

  4. Use your own domain

    Create an A record for your domain that points to the server's IPv4 address and wait until it resolves. Then run the domain helper as root: it switches the app to the new name and obtains a new certificate.

    nexoran-app-domain app.example.com
  5. Update webhook URLs

    Webhook URLs follow the server's host name. After you change the domain, update any webhooks you registered with outside services.

Security notes

  • n8n listens only on localhost; Caddy is the only service reachable from the internet.
  • The encryption key for stored credentials (N8N_ENCRYPTION_KEY) and the database password are generated per server in /opt/nexoran-app/.env. Keep a copy of the key: without it, stored credentials cannot be decrypted after a restore.
  • A server without a firewall accepts all inbound traffic. Create an Odinex firewall that allows only SSH (22), HTTP (80) and HTTPS (443) and apply it to the server. Odinex firewalls filter traffic before it reaches the server, so Docker's own iptables rules cannot bypass them.
  • Turn on two-factor authentication for your n8n account in its personal settings.
  • Take a snapshot before every upgrade, and turn on daily backups (20% of the server price) for anything you would not want to rebuild by hand.

n8n questions

Clear answers about location, infrastructure and billing.

Is this the full n8n?
It is the open-source n8n Community Edition from the official image, with no limit on workflows or executions. Features that need an n8n licence are not included.
How do I update n8n?
Take a snapshot, then run docker compose pull && docker compose up -d in /opt/nexoran-app. The image tracks the latest n8n release, so read the n8n release notes before a major upgrade.
Which time zone do workflows use?
The server default is UTC. Set a time zone for each workflow in its settings, or change GENERIC_TIMEZONE in /opt/nexoran-app/docker-compose.yml.
Can I use my own domain?
Yes. Point an A record at the server and run nexoran-app-domain n8n.example.com; the certificate and webhook base URL follow the new name.

Documentation

More from the marketplace

Deploy n8n in Frankfurt

Your own server with full root access, NVMe storage and 20 TB of traffic, billed by the hour.