Deploy Baserow | (Just Updated) Airtable Alternative Whose Admin Isn't Claimable By Strangers
Airtable alternative; admin seeded before the URL opens. Needs 2GB RAM.
redis
Just deployed
/data
postgres
Just deployed
/var/lib/postgresql
baserow
Just deployed
/baserow/data
Deploy and Host Baserow on Railway
Baserow is an open-source no-code database and spreadsheet — a self-hosted alternative to Airtable, with grid, gallery, form and kanban views, a REST API for every table, and webhooks. This template deploys Baserow's all-in-one image, pinned by digest to 2.3.3, as three preconfigured services with your admin account already seeded.
About Hosting Baserow
This template runs Baserow's all-in-one image (backend, Celery workers, and the Nuxt web frontend behind Caddy) alongside dedicated Postgres and Redis services. All three carry volumes, so your tables, uploaded files and job state survive every redeploy. The wrapper image seeds your administrator account from BASEROW_ADMIN_EMAIL / BASEROW_ADMIN_PASSWORD and switches public sign-up off before Caddy binds the public port, and it re-applies the password on every boot — so a redeploy is a working password reset. BASEROW_PUBLIC_URL is wired to your Railway domain and X-Forwarded-Proto is trusted, so share links, form links and password-reset emails come out as https:// rather than pointing at localhost.
Give the Baserow service 2 GB of RAM. Measured on the stock all-in-one image: at a 1 GB cap it is OOM-killed during first boot and never becomes reachable; at 2 GB it settles around 1.3 GB.
Why Deploy Baserow on Railway?
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying Baserow on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
- Admin isn't claimable by strangers — Baserow gives Baserow-wide staff rights to whoever signs up first (
is_staff=not User.objects.exists()), andallow_new_signupsdefaults to on with no environment variable to change it. On a stock deploy the first visitor to your URL owns the instance. This template seeds your admin and closes sign-up before the port opens, and refuses to boot without credentials rather than opening an unowned instance. - Nothing lost on redeploy — Baserow's data directory, Postgres, and Redis each persist to their own volume.
- Links that actually work —
BASEROW_PUBLIC_URLset to your Railway domain andX-Forwarded-Prototrusted behind Railway's TLS edge. - Pinned by digest — 2.3.3, not a moving tag on an app that migrates its schema forward on boot.
- Zero blank required fields — the deploy form asks for nothing; secrets are generated per deploy.
Common Use Cases
- Airtable replacement — internal CRMs, content calendars, inventory, and applicant trackers on infrastructure you own.
- Backend for a small app — every table gets a REST API and webhooks, so Baserow can back a form, a site, or an automation without a bespoke service.
- Shared team spreadsheets with permissions — grid, kanban, calendar and form views over the same rows, with per-workspace access.
Dependencies for Baserow Hosting
- Postgres and Redis services (both included and preconfigured in this template).
- 2 GB RAM on the Baserow service. Railway's Trial plan caps a service at 1 GB, which is not enough for this image.
Deployment Dependencies
- Baserow — upstream project by Baserow B.V. (MIT / Baserow Premium License)
- bon5co/baserow-railway — the wrapper image this template deploys
Implementation Details
After deploy, open your domain and sign in with BASEROW_ADMIN_EMAIL and the generated BASEROW_ADMIN_PASSWORD (both are in the Baserow service's variables). First boot runs the full migration set before the port opens, so expect a few minutes before the URL answers. Public sign-up is off; invite teammates from the workspace members panel, or turn sign-up back on under Admin → Settings once you have claimed the instance.
Template Content
redis
redis:8.2.1-alpinepostgres
postgres:16.4-alpinePOSTGRES_DB
POSTGRES_USER