Back to Blog

How to Self Host N8N Completely for Free in Under 3 Minutes

Automation

The easiest way to self host n8n locally for free using Docker Desktop, with persistent storage and the right config.

Summarize this post with

Many tutorials push VPS or hosting providers because they include affiliate or referral links that lead to monthly fees.

If you’re just getting started, self hosting n8n locally is the simplest and most cost effective option.
No subscriptions, no setup overhead, and no lock in.

This is the easiest way to self host n8n locally so you can build automations actually for free.

If you prefer visual, here’s the video walkthrough:

Official N8N Docker installation docs: https://docs.n8n.io/hosting/installation/docker/#prerequisites

Docker Desktop download
https://docs.docker.com/get-started/get-docker/

Timezone list (TZ format)
https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List

Step by step (Docker Desktop UI)

1) Create the volume first

This is what stores your workflows and automations.

  1. Open Docker Desktop
  2. In the left sidebar, go to Volumes
  3. Click Create
  4. Name it: N8N data
  5. Click Create

2) Pull the n8n image

  1. In the left sidebar, go to Images
  2. Click Search images
  3. Search: n8n
  4. Select: n8nio/n8n
  5. Click Pull
  6. When the pull finishes, close the search panel

3) Run the image with the right config

  1. Still in Images, find the n8n image and click Run
  2. Expand Optional settings
  3. Fill in the configuration like this

Container name
N8N

Ports
Host port: 5678
Container port: 5678

Volumes
Host path: select the volume you created, N8N data
Container path: /home/node/.n8n

Environment variables
The first two are your timezone.
Add these keys and set the value to your timezone.

GENERIC_TIMEZONE = America/Vancouver
TZ = America/Vancouver

Then add these two and set them to true.

N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS = true
N8N_RUNNERS_ENABLED = true

  1. Click Run

Note: you only need to do this configuration on the initial setup, or when updating your local instance.

4) Open n8n

After it starts, you should see a log message saying the editor is accessible via a link.

Click that link and your locally hosted n8n instance will open.

Done

You now have n8n running locally through Docker Desktop, with persistence via the volume you created.

When to Consider Other Options

Local self hosting is great for learning, testing, and personal automations.

If you need always on workflows, team access, or production reliability, then cloud hosting or managed solutions may make sense later.

Until then, this setup lets you actually build without friction.