Skip to main content
C $997 · fixed SLA · 5 days

Production-ready self-hosted n8n on your server — in 5 days.

Automations built to last.

A self-hosted n8n instance is one docker-compose file away.

A self-hosted n8n instance that survives a power cycle, a backup-restore drill, a Let's Encrypt renewal, and an n8n minor-version upgrade — that's a different deliverable. I ship the second one.

No discovery call. You provision the server. You share access. I deploy and hand over a runbook within 5 days.

NDA-friendly · Fixed-price · Money-back guarantee

FIG · Self-hosted deployment stack

Self-Hosted deployment stack Vertical stack diagram: Ubuntu server at the base, Docker layer, n8n plus Postgres 16 plus Caddy containers, HTTPS padlock, backup cycling, and monitoring heartbeat. Ubuntu Server RUNTIME Docker Compose CONTAINER n8n CONTAINER Postgres 16 PROXY Caddy TLS HTTPS Auto-cert OPS Monitoring BACKUP Daily snapshot UPTIME Health checks

Fit

Who this is for

You've decided to run n8n yourself. To keep data on infrastructure you control. To escape per-execution pricing. Or because your compliance team requires it.

You don't want to spend a weekend debugging Docker networking, Caddy's automatic-HTTPS edge cases, Postgres backup retention scripts, or which environment variables n8n actually respects in 2026.

This is for technical operators who want a production stack handed over with the operational seams documented — not a half-finished tutorial in a GitHub gist.

Before you self-host

What a production self-hosted n8n stack actually involves

Self-hosting n8n is one docker-compose file away — and that's exactly the trap. The tutorial version runs; the production version survives a reboot, a backup-restore drill, a certificate renewal, and a version upgrade. Here's what actually separates the two, so you can decide whether to build it yourself or have it handed over.

The five decisions that make a self-hosted n8n stack production-grade

  • <strong>Postgres, not SQLite.</strong> n8n ships with SQLite by default — fine for a demo, a liability in production: it locks under concurrency and makes backups awkward. A real deployment runs a dedicated Postgres with shared_buffers, work_mem, and max_connections tuned to the host's RAM, not the upstream defaults.
  • <strong>Docker Compose with pinned versions.</strong> n8n + Postgres + a reverse proxy, each pinned to a known-good version so an unattended image pull can't break you overnight — reproducible from a fresh server with one command.
  • <strong>HTTPS that renews itself.</strong> A reverse proxy (Caddy or Nginx) terminating TLS with automatic Let's Encrypt renewal, HTTP→HTTPS redirect, HSTS, and security headers — verified before you rely on it, not discovered the day the cert expires.
  • <strong>Encrypted, tested backups.</strong> A daily encrypted pg_dump with retention and an off-host destination (S3 / Backblaze / rsync) — plus the step everyone skips: actually restoring from one to prove it works.
  • <strong>Queue mode — only when you need it.</strong> For a single server up to ~50k executions/month, regular mode tuned correctly is enough. Past that, queue mode with Redis and worker nodes is how you scale throughput without dropping executions (that's SKU P — Scaling & Performance).

Want the production version without the weekend?

This setup hands you all five — docker-compose, Postgres, auto-renewing HTTPS, encrypted backups, and monitoring + a runbook — deployed on your server in 5 days, with the operational seams documented so you can run it yourself afterward.

Stack

The stack I deploy

n8n

Latest stable version. Queue mode optional (default: regular mode tuned for single-server workloads up to ~50k executions/month).

Postgres 16

Dedicated Postgres for n8n's execution data. Tuned shared_buffers, work_mem, and max_connections for the host's RAM. Not the upstream defaults.

Caddy

Reverse proxy with automatic HTTPS via Let's Encrypt. HTTP-to-HTTPS redirect. HSTS. Security headers configured by default.

Daily encrypted Postgres backups

pg_dump with GPG encryption. Written to a local backup directory with 7-day retention rolled by a cron job. Off-host destination (S3, Backblaze B2, or rsync target) configured on request at intake.

Monitoring

Your choice of Uptime Kuma (self-hosted, included in the compose file) or healthchecks.io (hosted, free tier, ping URL wired in). Pick one in the brief. I wire the right interval and the alerting channel.

One-command bootstrap script

./bootstrap.sh yourdomain.com admin@yourdomain.com — provisions the entire stack from a fresh Ubuntu 22.04 or 24.04 server.

Operational runbook

Single PDF, approximately 6 pages. Covers: deploy, rotate credentials, restore from backup, debug common issues, upgrade n8n one minor version safely.

Deliverables

What's included

  • Docker-compose file with n8n + Postgres 16 + Caddy, all pinned to known-good versions.
  • Bootstrap script: clone, configure, start. Verified on Ubuntu 22.04 and 24.04 LTS.
  • Encrypted daily backup cron with 7-day retention. Off-host destination configurable.
  • Monitoring of your choice (Uptime Kuma or healthchecks.io) wired with the right interval and alerting channel.
  • HTTPS via Caddy and Let's Encrypt. Auto-renewal verified before handover.
  • Operational runbook covering: deploy a fresh server, rotate the Postgres password, restore from yesterday's backup, debug a stuck workflow, upgrade n8n one minor version safely.
  • One handover deliverable in writing — README plus runbook plus a short Loom walk-through of the live instance.

Scope exclusions

What's NOT included

  • Server provisioning. You bring the host — DigitalOcean droplet, Hetzner, AWS Lightsail, your own VM. I deploy on it.
  • Domain and DNS. You bring the domain and point an A-record at the server before I start.
  • Workflow migration. If you need workflows moved from Zapier or Make, see SKU B — Stack Migration.
  • Custom queue-mode scaling with Redis and worker nodes. That's a custom Integration Build, not this SKU.
  • High-availability multi-node setup. This is single-server production-grade, not multi-region.
  • Ongoing operations. For monthly oversight see SKU I — Retainer.
  • Active Directory or SAML SSO integration.
  • Windows Server hosts. Ubuntu 22.04 or 24.04 LTS only.

Process

How it works

  1. 01

    Try the sandbox first (optional, free).

    Receive a sandbox URL plus admin credentials within 5 minutes. The sandbox runs a full n8n + Postgres + Caddy stack on my demo box. Container auto-destroys after 48 hours. Use it to verify the stack matches what you want before you buy.

  2. 02

    You buy.

    $997 fixed. Fund the milestone via Upwork or direct invoice.

  3. 03

    You provision and share access.

    Fresh Ubuntu 22.04 or 24.04 LTS server. SSH key access. Root or sudo. Domain pointed at the server's IP. You fill a one-page intake — server IP, domain, admin email, monitoring choice, backup destination.

  4. 04

    I deploy within 5 calendar days.

    No mid-flight calls. If a blocker surfaces I send one written question.

  5. 05

    I deliver.

    ZIP containing the compose file, bootstrap script, README, runbook PDF, and a short Loom walking through the live instance. You log in, change the admin password, and you're operational.

  6. 06

    Money-back if it fails acceptance.

    Acceptance = the runbook procedures execute as written against the delivered stack. Full refund through Upwork milestone or direct invoice.

Proof

Try the 48-hour sandbox

See the stack running before you buy. The sandbox is a full n8n + Postgres + Caddy deployment on my demo infrastructure, provisioned in under 5 minutes.

  1. 01

    Submit your email.

    Sent to syed@noorflows.com with subject "Sandbox request — SKU C".

  2. 02

    Receive a sandbox URL plus admin credentials within 5 minutes.

  3. 03

    Build a workflow. Trigger it. Watch the logs. Browse the runbook.

  4. 04

    After 48 hours the container is destroyed and the URL stops resolving.

    No data persists. No follow-up emails unless you opt in.

What you're trying

The sandbox is identical to the stack you receive at handover — same n8n version, same Postgres tuning, same Caddy config, same monitoring wired in. What you test is what you buy.

Pricing

Pricing

ScopePriceTimeline
Single-server production stack as specified above$9975 days

Fixed price. Includes the stack, the runbook, and the handover Loom. Need queue-mode with separate worker nodes, Redis, and horizontal scaling? That's a custom scope — start with this SKU, then extend.

Questions

FAQ

What server size do I need?
For under 10k workflow executions per month, a 2 vCPU / 4 GB RAM host is plenty. For 10k–50k executions, move to 4 vCPU / 8 GB. For higher volumes, queue mode plus separate workers — out of this SKU. The runbook includes sizing guidance with the math.
Can you deploy on Hetzner, DigitalOcean, AWS, GCP, Azure, my own VM?
Yes — anywhere with SSH access, a public IP, and Ubuntu 22.04 or 24.04. The bootstrap script is provider-agnostic.
What if I want a different reverse proxy — Traefik or nginx?
The default is Caddy because Let's Encrypt and HTTP-to-HTTPS are zero-config there. If you require Traefik or nginx, that's a custom scope on top of the $997 base. Send me your requirement at intake.
Where do backups go by default?
Local backup directory on the same host. Encrypted. 7-day rolling retention. I strongly recommend you also configure an off-host destination — S3, Backblaze B2, or an rsync target. The runbook covers wiring this in 10 minutes. I'll wire it for you if you provide credentials in the intake.
Does the sandbox give me persistent data?
No. The sandbox is throwaway by design. Anything you build in it is destroyed at the 48-hour mark. The point is to verify the stack, not to develop your production workflows.
Will you also help us migrate our existing Zapier workflows onto the new instance?
That's a separate SKU — see SKU B Stack Migration. Bundle discount available if you buy both in the same week. Message me at intake.
Is there an option for ongoing maintenance after handover?
Yes — see SKU I Retainer. Three tiers covering monthly health reports through full operate-and-build coverage.
What if you go on vacation right when something breaks?
The runbook is written so that an in-house engineer can execute every recovery procedure without me. Restore-from-backup, rotate credentials, debug a stuck workflow — all documented step by step in plain English. For ongoing oversight with a real human SLA, the retainer is the right product.
Can I run this stack on ARM (Graviton, Ampere, Raspberry Pi)?
Yes for Graviton and Ampere ARM64 servers. n8n, Postgres 16, and Caddy all ship multi-arch container images. Raspberry Pi is technically possible but not supported under this SKU's acceptance criteria — too many edge cases on SD-card I/O and thermal throttling.
What happens to my workflows if I cancel hosting later?
n8n stores everything in Postgres. You export the workflows as JSON at any time. You take the Postgres dump from the backup directory. You move both to any other n8n instance. No vendor lock-in introduced by this stack.
What if self-hosting isn't right for my team?
If you decide self-hosting isn't right for your team, <a href="https://n8n.partnerlinks.io/noorflows" target="_blank" rel="noopener noreferrer">n8n Cloud</a> is a solid alternative — no infrastructure to manage. You still get the same n8n workflow engine and the same JSON export format. Any workflows built for self-hosted n8n import directly into n8n Cloud.

Ready to deploy ?

NDA-friendly · Fixed-price · Money-back guarantee

Async delivery. Written deliverables.

syed@noorflows.com · async only · UTC+5

Get in touch