n8n connects your applications and services through workflows that run on your own Seed. When someone submits your contact form, a webhook starts a workflow that adds the contact to your CRM, opens a ticket and posts the request to your team chat. You build these flows in the editor by dragging nodes onto the canvas and connecting them. Hundreds of services come with ready-made integrations, and you reach any other service through an HTTP request to its API. AI agent nodes summarize or classify incoming requests using the API key of your AI provider, and where no integration fits, you write the step in JavaScript or Python. Your credentials stay encrypted on your Seed. The n8n Community Edition is licensed under the Sustainable Use License, a fair-code license, and is free of charge for your own use.
After the first boot
Once the Seed is running, it installs Docker and starts n8n, the task runner container and Traefik, which serves n8n over HTTPS. The installation usually takes 1 to 4 minutes. Afterwards, /root/ready.txt shows the address of your instance. If it stops early, /root/failed.txt gives the reason, such as an invalid address in ADMIN_EMAIL, and /root/n8n-install.log shows how far it got. As long as neither file exists, the installation is still running.
To sign in to n8n you need an email address and a password. The address is the one you set in ADMIN_EMAIL when creating the Seed, or admin@<Seed hostname> if you left the field empty. The password is randomly generated, and both are stored in /root/n8n-credentials.txt together with the address of your instance. n8n creates your owner account on its first start from environment variables holding the email address and a hash of the password, while n8n is reachable only locally on the Seed. Only then does Traefik expose n8n to the internet, and the installation removes the variables again. Nobody sees the sign-in page before your account exists. You can change your email address and password at any time under Settings > Personal, and Enable 2FA in the Security section of that page turns on two-factor authentication.
Invite more people under Settings > Users with Invite. Without an SMTP server, copy the invitation link and share it yourself. In the Community Edition, each invited person works with their own workflows and credentials, and n8n offers paid plans for sharing between people. n8n sends email through an SMTP server of your choice. Add its details as SMTP variables under environment of the n8n service in /root/n8n-compose/compose.yaml, then run docker compose up -d in that directory. From then on, n8n delivers invitations and password reset links itself.
The configuration lives in /root/n8n-compose. compose.yaml defines the three containers traefik, n8n and task-runners, and .env holds the versions, the hostname, the time zone (Europe/Berlin) and the token the task runner container uses to authenticate with n8n. Code nodes in JavaScript and Python run in that separate container, apart from n8n. n8n keeps workflows, credentials, the execution history and the key it uses to encrypt credentials in the Docker volume n8n-compose_n8n_data, so include that volume in your backups. Files for the Read/Write Files from Disk node go into /root/n8n-compose/local-files, which n8n sees as /files. A Webhook node's Production URL starts with https://<Seed hostname>/webhook/, its Test URL with https://<Seed hostname>/webhook-test/.
To update, set N8N_VERSION in .env to the new version, then run docker compose pull followed by docker compose up -d in /root/n8n-compose. The same variable sets the version of the task runner container, so both stay in step. Each update pulls up to about 2.6 GB of new images, and the old ones stay on the Seed. Once the new version is running, remove the old images with docker image prune -af. Traefik is updated the same way through TRAEFIK_VERSION, and Docker with apt update && apt upgrade. Before moving to a new major version such as n8n 3.0, read the n8n release notes. When the Seed reboots, all three containers start again on their own.
For external services to deliver webhooks reliably, we recommend your own domain. Point its A record to the Seed's IPv4 address and run seed-tls domain n8n.example.com over SSH. n8n then uses the domain for all webhook URLs as well.
Our guide Workflow Automation by Self-Hosting n8n walks through two complete examples with the dataforest API. One workflow takes a snapshot automatically before a system upgrade, the other emails a cost report for your Seeds. This Seed already covers the installation part, so start at “Building Your First Workflow”.
Suitable models
Entry
The entry point for low CPU load
Standard
All-rounder for variable production load
Performance
Exclusive compute for sustained load
Show all 15 suitable models
Entry
| Model | CPU | RAM | Storage | Traffic | Bandwidth | Price/hour | Price/month | |
|---|---|---|---|---|---|---|---|---|
| S | 1 Core | 2 GB | 20 GB | 10 TB | 1 Gbit/s | 0,005848 € | 3,65 € | |
| M | 2 Cores | 4 GB | 40 GB | 10 TB | 1 Gbit/s | 0,011694 € | 7,29 € | |
| L | 4 Cores | 8 GB | 80 GB | 10 TB | 1 Gbit/s | 0,023389 € | 14,59 € | |
| XL | 8 Cores | 16 GB | 160 GB | 10 TB | 1 Gbit/s | 0,038312 € | 23,91 € |
Standard
| Model | CPU | RAM | Storage | Traffic | Bandwidth | Price/hour | Price/month | |
|---|---|---|---|---|---|---|---|---|
| XS | 1 Core | 4 GB | 40 GB | 20 TB | 2.5 Gbit/s | 0,014303 € | 8,93 € | |
| S | 2 Cores | 8 GB | 80 GB | 20 TB | 2.5 Gbit/s | 0,024579 € | 15,34 € | |
| M | 4 Cores | 16 GB | 160 GB | 20 TB | 2.5 Gbit/s | 0,049158 € | 30,68 € | |
| L | 8 Cores | 24 GB | 240 GB | 20 TB | 2.5 Gbit/s | 0,093740 € | 58,49 € | |
| XL | 10 Cores | 32 GB | 360 GB | 20 TB | 2.5 Gbit/s | 0,120608 € | 75,26 € | |
| XXL | 16 Cores | 64 GB | 500 GB | 20 TB | 2.5 Gbit/s | 0,188623 € | 117,70 € |
Performance
| Model | CPU | RAM | Storage | Traffic | Bandwidth | Price/hour | Price/month | |
|---|---|---|---|---|---|---|---|---|
| S | 2 Cores | 16 GB | 80 GB | 20 TB | 10 Gbit/s | 0,070561 € | 44,03 € | |
| M | 4 Cores | 32 GB | 160 GB | 20 TB | 10 Gbit/s | 0,141122 € | 88,06 € | |
| L | 8 Cores | 64 GB | 240 GB | 20 TB | 10 Gbit/s | 0,277666 € | 173,26 € | |
| XL | 16 Cores | 128 GB | 360 GB | 20 TB | 10 Gbit/s | 0,548467 € | 342,24 € | |
| XXL | 32 Cores | 192 GB | 500 GB | 20 TB | 10 Gbit/s | 1,011118 € | 630,94 € |
Create it via the Public API
A single call creates this Seed. Replace the placeholders starting with $ with your own values, such as your API token and the IDs from your account. Go to the Public API
curl -X POST "https://api.dataforest.net/api/v1/public/seeds" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"plan": "lines/standard/models/std1-xs",
"location": "fra01",
"source": {
"type": "app",
"ref": "apps/n8n/versions/n8n-v2.40.7",
"environment_variables": {
"ADMIN_EMAIL": "$ADMIN_EMAIL"
}
},
"project_id": "$PROJECT_ID",
"name": "n8n"
}'