Self-host n8n workflow automation on a KVM server in Germany. Run as many workflows and executions as the server can handle, and keep your credentials on your own machine.
n8n Cloud is the easiest way to start, but its plans are priced by executions, and busy workflows that run every minute use them up quickly. The self-hosted community edition has no such limit. You run it with Docker on your own VPS, and the cost stays the same whether a workflow runs ten times a day or ten thousand.
Self-hosting also means you decide where data goes. Workflows that move customer records, invoices or internal messages never pass through a third party automation platform. In return you take care of updates and security yourself, which with Docker usually comes down to pulling a new image and restarting the container once in a while.
How much RAM does n8n need
n8n runs on Node.js and is comfortable on 2 GB of RAM for personal automations, scheduled tasks and a moderate number of webhooks. That is the VPS-2 plan. The default SQLite database is fine at this size, and the whole stack including Docker and the reverse proxy fits with room left over.
Choose 4 GB or more when workflows handle large files, process big JSON payloads, run code nodes with heavy libraries or execute many at the same time. At that point it also makes sense to switch to PostgreSQL. VPS-3 with 2 vCPU and 4 GB handles most small business setups, and VPS-4 leaves room for queue mode with a separate worker.
2 GB RAM: personal workflows and light webhooks.
4 GB RAM: team use, PostgreSQL, heavier data.
8 GB RAM: queue mode, workers, n8n next to other services.
Installing n8n with Docker and HTTPS
There is no preinstalled image. You get a clean Ubuntu or Debian server and follow our step by step guide: connect over SSH, install Docker, create a Compose file for n8n, point a domain to the server IP and add a reverse proxy that obtains a TLS certificate automatically. The editor is then available on your own domain over HTTPS.
HTTPS is not optional here. n8n stores credentials and many services only send webhooks to secure URLs. Set the webhook URL variable to your domain so trigger nodes show the right address, and keep the n8n port closed in the firewall so all traffic goes only through the proxy. Allow just SSH, HTTP and HTTPS from the outside.
Sending email from n8n
Outgoing mail ports are closed by default on our servers, so the SMTP node will not reach mail servers directly. The simplest option is an HTTPS email API such as Amazon SES, Postmark, Resend, Mailgun or Brevo, which n8n supports through its HTTP Request node or dedicated nodes. You only need an API key from the provider and a verified sender domain.
If you really need SMTP, the mail ports can be opened on request through a support ticket. This may require identity verification or a deposit. For most automation, an API provider is faster to set up and gives better delivery. Reading mail over IMAP works as usual, since only outgoing mail ports are affected.
Step by step guides
Written by our team and tested on DataPasa servers.
The n8n community edition is free to self-host. You pay only for the server: VPS-2 with 2 GB of RAM costs $3.54 a month, billed by the hour, with no limit on workflows or executions from our side.
For personal use, 1 vCPU and 2 GB of RAM are enough. Go for 4 GB or more if your workflows handle large files, run many executions in parallel or use PostgreSQL.
A domain is strongly recommended. It lets the reverse proxy get a free TLS certificate, and many services only send webhooks to HTTPS addresses. A cheap domain or a subdomain you already own works fine.
With Docker, pull the new n8n image and recreate the container. Your workflows and credentials stay in the data volume. Read the release notes before major updates.
Outgoing mail ports are closed by default. Use an email API like Amazon SES, Postmark or Resend, or ask support to open mail ports, which may require verification or a deposit.
Yes. Top up from $5 with USDT, BTC, ETH, XMR and about 100 coin and network pairs, or with a card through Stripe. The server is then charged by the hour from your balance.