Free Setup · Zero Cost · 20 Minutes

Deploy n8n for free.
Keep it always alive.

Host your own n8n automation instance on Render, connect it to a Supabase database, and use Uptime Robot to make sure it never sleeps. No credit card. No subscriptions.

Render.com — Free Hosting
n8n — Self-hosted
Supabase — Free Database
Uptime Robot — Keep Alive
STEP 01
Deploy n8n
Host n8n on Render free tier using Docker
STEP 02
Setup Supabase
Create a free PostgreSQL database
STEP 03
Connect Both
Link n8n to Supabase via credentials
STEP 04
Uptime Robot
Ping every 5 min — instance never sleeps
01 — DEPLOY n8n
Host n8n on Render
Free Web Service · Docker · ~5 minutes
1

Create a Render account

Go to render.com and sign up with your GitHub account. This is required — you'll need GitHub to deploy later.

→ render.com
2

Create a new Web Service

From the Render dashboard, click New → Web Service. Then choose "Deploy an existing image from a registry".

ℹ️
You're using the official n8n Docker image — no code repo needed.
3

Enter the Docker image URL

In the image field, paste this exactly:

Docker Image
docker.n8n.io/n8nio/n8n
4

Configure the service settings

Use these exact values when filling out the service form:

FieldValue
NameAnything you want (e.g. my-n8n)
RegionPick the closest to you
Instance TypeFree
Port5678
5

Add Environment Variables

Scroll to Environment Variables and add these one by one:

Required Variables
N8N_HOST = 0.0.0.0
N8N_PORT = 5678
N8N_PROTOCOL = https
WEBHOOK_URL = https://YOUR-APP-NAME.onrender.com
N8N_ENCRYPTION_KEY = any-random-32-char-string-here
N8N_USER_MANAGEMENT_DISABLED = false
⚠️
WEBHOOK_URL must match your Render service URL exactly. You'll get the URL after deploy — update this variable after the first deploy if needed.
6

Deploy and access n8n

Click Create Web Service. Render will build and deploy n8n (takes ~2–3 minutes). Once it shows Live, open your URL — you'll see the n8n setup screen.

Create your owner account (email + password). This is your login — save it.

Your URL format will be: https://your-service-name.onrender.com

02 — DATABASE
Setup Supabase
Free PostgreSQL · Always on · No expiry
1

Create a Supabase account

Go to supabase.com and sign up. GitHub login is the fastest option.

→ supabase.com
2

Create a new project

Click New Project. Fill in:

FieldValue
NameAnything (e.g. n8n-db)
Database PasswordCreate a strong password — save it, you'll need it
RegionClosest to your Render region
PlanFree

Wait ~2 minutes for the project to provision.

3

Get your database connection string

In your project, go to Settings → Database. Scroll to Connection string and select the URI tab. Copy the full string — it looks like this:

Connection URI Format
postgresql://postgres:[YOUR-PASSWORD]@db.[YOUR-PROJECT-REF].supabase.co:5432/postgres
⚠️
Replace [YOUR-PASSWORD] with your actual database password before using this URI.
4

Save your Supabase credentials

You'll also need these values later for the n8n Supabase node:

Where to find itWhat it's called
Settings → APIProject URL (e.g. https://xxxx.supabase.co)
Settings → APIanon / public key (starts with eyJ...)
Settings → APIservice_role key (for backend use)

03 — CONNECT
Link n8n to Supabase
Two methods — choose what fits your workflow
ℹ️
Two ways to connect: Use the Postgres node if you want raw SQL control. Use the Supabase node if you want simple table operations (insert, get, update, delete).
A

Method A — Supabase Node (Recommended for beginners)

In n8n, add a new node → search Supabase → click it → under credentials click Create New. Fill in:

FieldValue
HostYour Supabase Project URL (e.g. https://xxxx.supabase.co)
Service Role SecretYour service_role key from Supabase API settings

Click Save. Your Supabase connection is ready. You can now read/write tables directly.

B

Method B — Postgres Node (Full SQL control)

Add a Postgres node → create new credentials → fill in:

FieldValue
Hostdb.[your-project-ref].supabase.co
Databasepostgres
Userpostgres
PasswordYour Supabase DB password
Port5432
SSLEnable (Require)
SSL must be enabled — Supabase requires it. Without it, the connection will fail.
C

Test the connection

After saving credentials, click Test Connection inside n8n. You should see a green ✓. If it fails, double-check your password and that SSL is enabled.


04 — KEEP ALIVE
Setup Uptime Robot
Ping every 5 min → Render stays awake → n8n never sleeps
⚠️
Why this matters: Render's free tier spins down services after 15 minutes of inactivity. Without Uptime Robot, your n8n goes to sleep and takes ~30 seconds to wake up when you open it. With pings every 5 minutes, it stays alive 24/7.
1

Create an Uptime Robot account

Go to uptimerobot.com and register for free. The free plan allows up to 50 monitors with 5-minute check intervals — more than enough.

→ uptimerobot.com
2

Add a new monitor

After logging in, click Add New Monitor. Use these settings:

FieldValue
Monitor TypeHTTP(S)
Friendly NameAnything (e.g. n8n Keep Alive)
URLYour full Render URL (e.g. https://my-n8n.onrender.com)
Monitoring IntervalEvery 5 minutes
3

Save and verify

Click Create Monitor. After a minute, the monitor status should show green UP. If it shows DOWN, verify your Render URL is correct and that n8n finished deploying.

You can also enable email alerts — Uptime Robot will notify you if your n8n ever goes down unexpectedly.
4

Optional: Verify your instance is staying awake

In Render's dashboard, check the Logs tab on your Web Service. You should see a small ping request every 5 minutes coming in — that's Uptime Robot keeping your instance alive.

Expected log entries
GET / 200 — (every ~5 minutes)
GET /healthz 200 — normal n8n health check

You're live. ✦

Your n8n instance is deployed, connected to Supabase, and will never sleep. Here's everything you've set up:

n8n deployed on Render (free)
Owner account created
Supabase project + database ready
Connection credentials saved
n8n connected to Supabase
Uptime Robot monitor active
Instance pinging every 5 min
Total cost: $0.00