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.
Go to render.com and sign up with your GitHub account. This is required — you'll need GitHub to deploy later.
→ render.comFrom the Render dashboard, click New → Web Service. Then choose "Deploy an existing image from a registry".
In the image field, paste this exactly:
Use these exact values when filling out the service form:
| Field | Value |
|---|---|
| Name | Anything you want (e.g. my-n8n) |
| Region | Pick the closest to you |
| Instance Type | Free |
| Port | 5678 |
Scroll to Environment Variables and add these one by one:
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.
Go to supabase.com and sign up. GitHub login is the fastest option.
→ supabase.comClick New Project. Fill in:
| Field | Value |
|---|---|
| Name | Anything (e.g. n8n-db) |
| Database Password | Create a strong password — save it, you'll need it |
| Region | Closest to your Render region |
| Plan | Free |
Wait ~2 minutes for the project to provision.
In your project, go to Settings → Database. Scroll to Connection string and select the URI tab. Copy the full string — it looks like this:
You'll also need these values later for the n8n Supabase node:
| Where to find it | What it's called |
|---|---|
| Settings → API | Project URL (e.g. https://xxxx.supabase.co) |
| Settings → API | anon / public key (starts with eyJ...) |
| Settings → API | service_role key (for backend use) |
In n8n, add a new node → search Supabase → click it → under credentials click Create New. Fill in:
| Field | Value |
|---|---|
| Host | Your Supabase Project URL (e.g. https://xxxx.supabase.co) |
| Service Role Secret | Your service_role key from Supabase API settings |
Click Save. Your Supabase connection is ready. You can now read/write tables directly.
Add a Postgres node → create new credentials → fill in:
| Field | Value |
|---|---|
| Host | db.[your-project-ref].supabase.co |
| Database | postgres |
| User | postgres |
| Password | Your Supabase DB password |
| Port | 5432 |
| SSL | Enable (Require) |
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.
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.comAfter logging in, click Add New Monitor. Use these settings:
| Field | Value |
|---|---|
| Monitor Type | HTTP(S) |
| Friendly Name | Anything (e.g. n8n Keep Alive) |
| URL | Your full Render URL (e.g. https://my-n8n.onrender.com) |
| Monitoring Interval | Every 5 minutes |
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.
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.
Your n8n instance is deployed, connected to Supabase, and will never sleep. Here's everything you've set up: