English
€EUR
Automation

n8n

Compatible with the Infrawire installer

Self-hosted workflow automation, delivered with Docker and HTTPS

Minimum requirements
  • 2 GB RAM
Developer
n8n GmbH
Version
Latest stable
License
Sustainable Use License
Systems
Debian 12, Debian 13, Ubuntu 20.04, Ubuntu 22.04, Ubuntu 24.04

About n8n

n8n is a visual workflow automation tool. You connect nodes (webhooks, HTTP requests, databases, email, SaaS services) on a canvas, and drop in JavaScript or Python when a node is not enough. Self-hosted, it keeps your data and credentials on your own machine instead of with a third party.

On delivery, the recipe script installs Docker if it is missing, then starts two containers with Docker Compose from /opt/n8n: n8n (image docker.n8n.io/n8nio/n8n:latest) and Caddy 2. n8n listens only on 127.0.0.1:5678. Caddy, running in host network mode, publishes the service over HTTPS on port 443 and proxies requests to n8n.

The certificate is self-signed (Caddy's tls internal directive) and tied to the server's public IP address. Your browser will show a warning on the first visit, which is expected until a domain name is attached. n8n's data is stored in a Docker volume (n8n_data) and the time zone is set to Europe/Paris.

What you can do with n8n

  • Visual workflow editor

    You assemble triggers, conditions and actions on a canvas. Every execution can be inspected node by node, which makes debugging much easier.

  • Webhooks and HTTP calls

    A workflow can start on an incoming request or query any REST API. The server is already configured to build its webhook URLs with HTTPS.

  • JavaScript or Python code

    A Code node lets you transform data or write logic that the standard nodes do not cover, without leaving the workflow.

  • Data stays on your server

    Workflows, credentials and execution history remain in the n8n_data Docker volume on your VPS, hosted in Paris or Frankfurt.

  • HTTPS through Caddy from day one

    n8n stays bound to 127.0.0.1 and only Caddy is exposed on port 443. Moving to a trusted certificate comes down to editing one file.

  • Automatic start on boot

    Both containers are declared with restart: always. After a server reboot, n8n and Caddy come back up without intervention.

Get started with n8n

From order to production in a few minutes.

  1. 1

    Order the VPS with n8n

    Choose a Linux VPS in Paris or Frankfurt, then tick n8n in the "Applications" tab of the order form. Debian 12, Debian 13, Ubuntu 20.04, 22.04 and 24.04 are available.

  2. 2

    Wait for delivery and check the stack

    The script runs on first boot: it installs Docker and starts the containers, which takes a few minutes. Connect over SSH with the delivery credentials and check that n8n and Caddy are running.

    Bash
    cd /opt/n8n && docker compose ps
  3. 3

    Create the owner account

    Open https://SERVER_IP in your browser and accept the warning about the self-signed certificate. n8n asks you to create the owner account, which is the account that administers the instance.

  4. 4

    Switch to a domain with HTTPS

    Create a DNS A record from YOUR_DOMAIN to SERVER_IP, then replace the Caddyfile and the n8n variables. Caddy then obtains a trusted certificate automatically, as long as ports 80 and 443 are reachable.

    Bash
    cd /opt/n8n cat > Caddyfile <<'EOF' YOUR_DOMAIN { reverse_proxy 127.0.0.1:5678 } EOF sed -i 's|N8N_HOST=.*|N8N_HOST=YOUR_DOMAIN|; s|WEBHOOK_URL=.*|WEBHOOK_URL=https://YOUR_DOMAIN/|' docker-compose.yml docker compose up -d docker compose restart caddy

n8n use cases

  • Sync your business tools

    A new lead in a form creates a record in your CRM, sends a confirmation email and notifies the team in a chat tool. All of it fits in a single workflow.

  • Process incoming webhooks

    Payments, Git repositories or monitoring alerts can trigger workflows that filter, enrich and redistribute events. This calls for a domain name with a valid certificate, since most services reject a self-signed one.

  • Automate scheduled tasks

    Database exports, weekly reports, data cleanup: a cron trigger replaces scripts scattered across several machines.

  • Plug in AI models

    n8n can call language model APIs from a workflow, for example to classify tickets or summarise emails before routing them to the right person.

n8n FAQ

The certificate is generated by Caddy (tls internal) for the server's IP address: no public authority can issue one for a bare IP in this setup. Encryption is active, but the certificate is not trusted. Attach a domain name and Caddy will obtain a valid certificate.

More about n8n

Installed files

Everything lives in /opt/n8n: the install-n8n.sh script, the docker-compose.yml file and the Caddyfile. Three Docker volumes are created: n8n_data (n8n data, including the credentials encryption key), caddy_data and caddy_config.

The N8N_HOST and WEBHOOK_URL variables hold the public IP address detected at install time. If you change the address or the domain, update them, otherwise the webhook URLs shown in the interface will be wrong.

Firewall

n8n is not exposed directly, but port 443 is opened by Caddy. Keep everything else closed: SSH, port 80 (needed to issue the Let's Encrypt certificate) and 443 are enough.

Bash
ufw allow 22/tcp ufw allow 80/tcp ufw allow 443/tcp ufw enable

Allow SSH before enabling the firewall, or you will lose your session.

Backups

The essentials are in the n8n data volume. Docker Compose prefixes its name with the project folder name: check it with docker volume ls (it is normally called n8n_n8n_data), then archive it.

Bash
docker run --rm -v n8n_n8n_data:/data -v /root:/backup alpine \ tar czf /backup/n8n-data-$(date +%F).tar.gz -C /data .

Copy the archive off the server. Without the encryption key stored in this volume, the credentials saved in n8n cannot be recovered.

Updates

The Compose file uses the latest tag. To update:

Bash
cd /opt/n8n docker compose pull docker compose up -d

Take a backup first. For a production instance, you can replace latest with a specific version number in docker-compose.yml and upgrade when you decide to, after reading the release notes.

Stay up to date with the latest offers, discounts and special promotions.

View promotions

We use cookies

We use analytics cookies to improve your experience on our site. No data is sold to third parties. Learn more in our privacy policy.