Skip to content

Self-host Baserow

updated Sep 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 →

An open-core Airtable alternative on Django and PostgreSQL: spreadsheet-style databases with an auto-documented REST API, plus an application builder, dashboards and automations, in one all-in-one Docker image.

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

Key facts

LicenseMIT
StackPython, Django, Vue
Min RAM2048 MB
Official imageyes
Measured idle RAM1167 MB
Difficulty
Our recommendation

Pick Baserow when you want an Airtable alternative whose free edition is real open source: everything outside its `premium/` and `enterprise/` directories is MIT, and upstream says self-hosted Baserow has no row, storage or API request limits. The free edition includes grid, form and gallery views, webhooks, a REST API with auto-generated per-database docs, two-factor authentication, dashboards, an application builder and an automation builder, all on Django and PostgreSQL. The quickest install is one all-in-one container that runs the app, PostgreSQL, Redis and Caddy with automatic HTTPS. Upstream's DigitalOcean guide says 1 vCPU and 2 GB of RAM per app container at minimum; our 2 GB floor uses that figure. If you need kanban and calendar views without paying, NocoDB's Community edition includes them.

Follow the Baserow deploy guide →

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
  • Under an hour if you've used Docker before
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:

# Baserow — the all-in-one image (app, PostgreSQL, Redis and Caddy in one container), per baserow.io/docs/installation/install-with-docker
docker run -d --name baserow \
  -e BASEROW_PUBLIC_URL=https://baserow.example.com \
  -e BASEROW_CADDY_ADDRESSES=:443 \
  -v baserow_data:/baserow/data \
  -p 80:80 -p 443:443 \
  --restart unless-stopped \
  baserow/baserow:2.3.4
# optional: -e DATABASE_URL=postgresql://user:pwd@host:port/db to use an external PostgreSQL (upstream recommends it for production)
# BASEROW_PUBLIC_URL must match the address you type in the browser

What you take on

Baserow's docs are clear about where the free edition stops and what the all-in-one image leaves to you:

non-negotiableKanban, calendar and timeline views and row comments are in the premium/ code, and SSO, audit logs, role-based and field-level permissions and two-way PostgreSQL sync are in enterprise/. That code ships in the same image but may only be used in production with a paid subscription "for the correct number of users". Self-hosted licences are bought through a Baserow Cloud account and registered under Admin → Licenses.
non-negotiableBASEROW_PUBLIC_URL must match the address users type into the browser; upstream warns any other address is treated as a published application. Add BASEROW_CADDY_ADDRESSES to get automatic HTTPS from the built-in Caddy.
non-negotiableDocker port publishing bypasses ufw rules, so -p 80:80 -p 443:443 exposes Baserow publicly whatever your firewall says. Upstream suggests binding to 127.0.0.1 if that is not what you want.
non-negotiableThe all-in-one image keeps PostgreSQL, Redis, Caddy and uploads in /baserow/data; mount a volume or lose everything when the container goes. The documented full backup is a tar of that volume with Baserow stopped, which only works with the internal database. Upstream recommends an external PostgreSQL (DATABASE_URL) for production, and old embedded PostgreSQL 11 data directories need upstream's upgrade image before newer releases will start.
non-negotiableUpgrades mean starting a new container on a newer image tag; Baserow migrates itself on startup, and upstream says to back up first. To trim memory, BASEROW_RUN_MINIMAL=yes with BASEROW_AMOUNT_OF_WORKERS=1 runs a single background worker, at the cost of slow tasks delaying realtime updates.

An alternative to

Head-to-head

More in No-code database

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