Deploy n8n on Render with Supabase: (Free-Tier Beginner Friendly Setup Guide) (Tested Working as of September 2025)

September 11, 2025 (1mo ago)

Deploying n8n on Render with a Supabase backend gives you a generous free-tier playground for building automations and AI agents. This guide walks through the full setup: provisioning Supabase, configuring Render’s Docker-based web service, and wiring environment variables so your workflows survive restarts.

⚠️ Replace any placeholder credentials with your own secrets. Keep database passwords and encryption keys stored in a secure vault.

Prerequisites

Step 1: Provision Supabase Postgres

  1. Create project. In the Supabase dashboard, click New Project, name it (e.g., n8n-database).
  2. Choose region. Pick a region near your planned Render deployment to minimize latency. Sample region pairs:
    • Render: Oregon, Ohio, Virginia, Frankfurt, Singapore
    • Supabase: North California, North Virginia, Ohio, Ireland, London, Paris, Frankfurt, Zurich, Stockholm, Mumbai, Singapore, Tokyo, Seoul, Sydney, São Paulo
  3. Set database password. Generate a strong password; store it in a secure manager.
  4. Launch project. Accept default security settings for now and click Create new project.
  5. Grab connection details. Once the project initializes, click Connect near the main database:
    • Open Session pooler (Shared Pooler)View parameters.
    • Save the host, port, database, user, and pool mode. Note that Render.com services are IPv4-only, so you need to use the session pooler endpoint. Direct connections are IPv6-only unless you purchase an IPv4 support add-on.

Step 2: Create Render web service

  1. In Render, choose New ➜ Web Service.
  2. Select Existing Image and set Image URL to docker.io/n8nio/n8n:latest.
  3. Name the service (e.g., n8n-instance). This becomes the default subdomain: https://n8n-instance.onrender.com.
    • (Please note that the name you choose here will become the subdomain when you deploy, like https://n8n-instance.onrender.com. You can connect your own custom domain later if you'd like. However, please make sure to pick an easy to remember personal name.)
  4. Region: Match your Supabase region where possible.
  5. Instance Type: Start with the free instance to test. Be aware it sleeps on inactivity, so long-running automations may need a paid tier later.

Step 3: Wire environment variables

Scroll to Environment Variables and add each pair:

VariableValue
DB_POOL_MODEsession
DB_POSTGRESDB_DATABASESupabase database name (postgres by default)
DB_POSTGRESDB_HOSTSupabase pooler host (e.g., xyz.pooler.supabase.com)
DB_POSTGRESDB_PASSWORDSupabase DB password you saved earlier
DB_POSTGRESDB_PORT5432
DB_POSTGRESDB_USERSupabase database user (e.g., postgres.xyz)
DB_TYPEpostgresdb
DB_POSTGRESDB_CONNECTION_TIMEOUT600
DB_POSTGRESDB_MAX_POOL_SIZE30
DB_POSTGRESDB_SSLtrue
GENERIC_TIMEZONEe.g., America/New_York
N8N_BLOCK_ENV_ACCESS_IN_NODEfalse
N8N_ENCRYPTION_KEYSecure random password (click on "generate" and store safely)
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONStrue
N8N_HOST0.0.0.0
N8N_PROTOCOLhttps
N8N_RUNNERS_ENABLEDtrue
N8N_VERSION_NOTIFICATIONS_DISABLEDtrue (optional, to hide version update notifications)
N8N_PORT5678
PORT5678
N8N_PROXY_HOPS1
WEBHOOK_URLhttps://<your-service>.onrender.com (the name you gave your web service + onrender.com (e.g. https://n8n-instance.onrender.com))

Step 4: Add persistent storage

While n8n can run statelessly, persistent storage prevents you from having to reinstall community nodes after every single deploy. No persistent storage works for now too, no worries.

Important note on persistent storage

If you don't add persistent storage, every time you deploy, you'll need to reinstall all third-party community nodes. That's a lot of extra unnecessary work.

Render's pricing model is based on usage, not fixed plans. You only pay for the time your instance is running, bandwidth, and storage. If you shut down your instance, you don't pay anything.

Step 5: Deploy

  1. Double-check configuration and click Deploy Web Service.
  2. Watch build logs in the Logs tab until the service goes live.
  3. Visit the public URL (https://<your_chosen_service_name>.onrender.com). Complete the initial admin setup with a valid email and receive the free community license activation code.

Step 6: Tune Supabase

Step 7: Confirm persistence

  1. Build a sample workflow in n8n.
  2. Restart the Render service from the dashboard.
  3. Reopen n8n and verify your workflow still exists proof that Supabase + disk storage (optional) are working.

Billing notes

Render bills per-second usage, bandwidth, and storage. If you shut down the instance, compute charges stop. Upgrade only when you need 24/7 uptime or higher performance.

Wrap-up

You now have a free-tier friendly n8n instance running on Render with Supabase handling persistence. Extend this setup by adding n8n runners, custom domains, or integration secrets.

When you’re ready to scale, upgrade Render’s plan and Supabase’s compute tier without re-architecting the stack.

Final Thoughts

This is a great way to get started with self-hosting n8n. But if you want a better, more cost-effective option, you can host n8n on your own paid server (vps).

It’s definitely more complicated to set up, but it saves you money in the long run. If you're comfortable with some extra effort, self-hosting on your own infrastructure is the smarter choice.