For most self-hosted n8n setups, use Docker Compose and persist the /home/node/.n8n directory. A local machine is suitable for learning or development; if workflows or webhooks must run while your computer is off, use an always-on server and plan for HTTPS, access controls, updates, and backups. n8n is fair-code workflow automation software, with Docker, npm, and n8n Cloud among its documented ways to use it. n8n’s documentation recommends Docker for most self-hosting needs.
Decide where n8n should run
Start with whether the instance needs to be continuously available. A service running on your personal computer stops being available when that computer is off or disconnected. That may be fine for learning, but it is a poor fit for workflows that need to run on a schedule or receive webhooks at any time.
| Option | Best fit | What to plan for |
|---|---|---|
| Local computer | Learning, development, and workflows you only need while the computer is running. | Keep the instance private unless you deliberately configure public access. Availability depends on your computer and connection. |
| VPS or other cloud machine | Workflows and webhook endpoints that need to be available when your personal computer is off. | You operate the server and deployment, including persistent storage, updates, HTTPS, access controls, and backup and recovery planning. |
A cloud provider is a hosting choice, not a requirement imposed by n8n. Its cloud-provider Compose example shows one deployment pattern, using Traefik for routing and TLS.
Deploy with Docker Compose
Docker Compose lets you define n8n and its supporting services together. For the current official Compose guide, have Docker Engine and Docker Compose v2 available, then use n8n’s Docker Compose installation instructions as the version-current reference for the configuration and startup procedure.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →#1 Best Overall
- Choose the host. Use your computer for a private trial, or an always-on server when availability matters. Make sure you can maintain the machine and its storage.
- Prepare Docker. Install Docker Engine and Compose v2 on the chosen host. The Compose guide’s stated minimum of 4 GB RAM and 2 vCPUs applies to its documented Assistant sandbox stack, not to every n8n deployment. Actual needs depend on workflow load, concurrency, and optional components.
- Follow the official Compose setup. Use the current n8n guide for the service definitions and startup steps rather than copying an old configuration. Keep sensitive credentials and encryption-key material out of public repositories.
- Persist n8n’s data directory. Mount durable storage at
/home/node/.n8n, the container’s default data directory. n8n documents that it contains the default SQLite database when SQLite is used, the encryption key, and other important instance data. - Verify the instance. Confirm you can open the editor and that the instance’s data remains available after a restart. A restart is not a backup; arrange a separate backup and recovery approach for the persistent data.
Keep the /home/node/.n8n volume even if you configure PostgreSQL. n8n’s Docker installation guidance recommends retaining it because it holds the encryption key and other instance assets, not just the default database. Losing the key can impair access to stored credentials.
Configure public access and HTTPS
A publicly reachable n8n instance needs a deliberate network and TLS setup. Put a reverse proxy or network load balancer in front of n8n to handle HTTPS, and configure n8n’s public and webhook URLs to match the address callers actually use. Incorrect public URL configuration can prevent webhook callers from reaching the expected endpoint.
n8n’s SSL guidance describes using a reverse proxy or network load balancer. Its cloud-provider Compose example uses Traefik, but that is an example rather than the only valid proxy. Do not expose an unprotected editor directly to the internet. A local-only development instance has different exposure needs, but should remain private unless you intentionally configure and secure external access.
Choose SQLite or PostgreSQL
SQLite is n8n’s default database; PostgreSQL is also supported and appears in n8n’s hosting examples. There is no documented universal workload threshold in the cited setup guidance that makes PostgreSQL mandatory. Choose based on your concurrency, workload, recovery requirements, and experience operating the database.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Rank #3
| Database | Consider it when | Operational point |
|---|---|---|
| SQLite | You want the default, simpler database setup for a small or straightforward deployment. | Its database is in /home/node/.n8n; protect that persistent data with a recovery plan. |
| PostgreSQL | You prefer a separate database service or its operational model better suits your workload and recovery approach. | Persist PostgreSQL’s data as well as n8n’s /home/node/.n8n directory. |
See n8n’s Docker documentation for its database options and the current configuration details.
Maintain the instance and review its security
Self-hosting makes you responsible for operating the environment. Plan updates rather than changing production without preparation: read release notes, back up first, update deliberately, and then check that important workflows and integrations still work. The n8n security audit also checks whether an instance is outdated.
Rank #4
Run n8n audit, or use the authenticated API or audit node, to review the issues n8n checks for. The audit covers credential risks, database query patterns, filesystem-accessing nodes, risky or community/custom nodes, unprotected webhooks, missing settings, and outdated instances. Review findings in context: community nodes and nodes able to access or execute on the host belong in your threat model. See the n8n security audit documentation for audit methods and report categories.
Add advanced features only if your plan supports them
External binary-data storage
External binary-data storage in S3 is documented for Self-hosted Enterprise plans, not as a universal Community capability. AWS S3 is the officially supported provider; S3-compatible services may work but are not officially supported. n8n delegates binary-data pruning to S3, so configure bucket lifecycle deletion if you want old binary data to expire. Check the external storage documentation and current plan entitlements before designing around this feature.
Best Value
Source-control environments
Git-based source-control environments are also plan-dependent. n8n warns against pushing and pulling to the same instance because changes can be overwritten and data loss can result. Check the current source-control environment documentation and plan availability before relying on the feature.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

