Skip to content

Self-host Nhost

updated Jul 2026prices checked · Jul 2026Install verified on Ubuntu 26.04 · Sep 2026 · how we test
We earn commissions when you shop through the links below. Full disclosure →

Open-source Firebase alternative built on Postgres and Hasura's instant GraphQL API, with authentication, file storage, and serverless functions in one Docker Compose stack.

Firebase / yr$300
Self-hosted / yr~$283
You keep$17/yr
Pocket the difference — spin it up on a cheap VPS in minutes.Start free on Kamatera → (opens in new tab)

Key facts

LicenseMIT
StackPostgreSQL, Hasura
Min RAM2048 MB
Official imageyes
Measured idle RAM510 MB
Difficulty
Our recommendation

Reach for Nhost when you want Hasura's instant GraphQL API over Postgres bundled with auth, storage, and functions — a strong fit if your app is GraphQL-first rather than REST-first. Budget 2 GB and expect to do more assembly than Supabase's official stack: the self-hosted path is a community Docker Compose reference, not the product Nhost sells as managed cloud.

What you need

  • Any VPS with at least 2048 MB of RAM
  • A domain you control — most self-hosted setups need HTTPS in front of them
  • About the better part of a day
Where to host itaffiliate disclosure
Hetzner Cloudrun it on
From $23.59/mo · 2 vCPU / 4 GB / 80 GB · EU + US
Get Hetzner Cloud (opens in new tab)
Kamaterafree trial
From $4/mo · 1 vCPU / 1 GB / 20 GB · US + EU + Asia
Start free on Kamatera → (opens in new tab)
DigitalOceanalso works on
From $6/mo · 1 vCPU / 1 GB / 25 GB · US + EU + Asia
Deploy on DigitalOcean → (opens in new tab)

Paid link — we earn a commission if you shop through it.

Install

Run these commands on your server:

# Nhost — self-hosting reference stack (community-maintained; no formal support without a paid agreement)
git clone https://github.com/nhost/nhost
cd nhost/examples/docker-compose
cp .env.example .env
# MinIO removed its images from Docker Hub (Sept 2026); the pinned minio/minio tag no longer pulls, so swap in Chainguard's free MinIO build (latest tag only)
sed -i 's|image: minio/minio:.*|image: cgr.dev/chainguard/minio:latest|' docker-compose.yaml
docker compose up -d

What you take on

Nhost is Postgres and Hasura underneath, both mature — but the self-hosted packaging asks more of you than the hosted product does:

non-negotiableSelf-hosting is community-maintained, not the core product. Nhost's business is managed cloud; the Compose setup is a community reference implementation without an official support agreement — treat docs gaps as expected, not a bug.
non-negotiableHasura adds a piece to operate. You're running and understanding a GraphQL engine on top of Postgres, not just Postgres — budget time to learn Hasura's permission and metadata model.
non-negotiableBackups are your own Postgres discipline. Same as any self-hosted Postgres app: pg_dump/WAL-archiving and a tested restore, because nothing does it for you.

An alternative to

More in Backend & BaaS

Common questions

Why does docker compose fail with "pull access denied for minio/minio, repository does not exist"?

MinIO removed its minio/minio and minio/mc images from Docker Hub in September 2026, and quay.io has refused anonymous pulls since 24 September. Nhost's example compose still pins minio/minio:RELEASE.2025-02-28T09-55-16Z (checked 2026-09-28), so the whole pull aborts before anything starts. The install above swaps in Chainguard's free MinIO build (cgr.dev/chainguard/minio:latest); with that one change the full stack installed cleanly on a fresh Ubuntu 26.04 server on 2026-09-29. Chainguard only publishes that image as latest, and the community MinIO line gets no further security fixes, so for anything long-lived consider pointing Nhost's storage at a different S3-compatible server.

We use analytics cookies (Google Analytics, PostHog) to see which guides are useful. No ad networks, no cross-site tracking. See our privacy policy.