Deploy Baserow (Distributed Arch.) | Open Source Airtable Alternative on Railway
Self Host Baserow. No-code database with automations, API, & more
Baserow
Baserow Backend
Just deployed
/baserow/media
Baserow Frontend
Just deployed
DBs
Just deployed
/var/lib/postgresql/data
Redis
Just deployed
/data
Celery
Celery Beat
Just deployed
Celery Worker
Just deployed

Deploy and Host Baserow on Railway
Deploy Baserow on Railway with a production-grade architecture — separate backend, frontend, and worker services that scale independently.
Baserow is an open-source no-code database platform and Airtable alternative that lets teams build databases, automations, apps, and AI agents without writing code. Trusted by 150,000+ users, it's MIT-licensed and GDPR/HIPAA/SOC 2 compliant.
Self-host Baserow on Railway with this template to get independent scaling, cleaner healthchecks, and the latest v2.2.0 features.

Getting Started with Baserow on Railway
Once all services are deployed, open the Frontend URL. You'll be redirected to the signup page to create your admin account. Enter your email and password to register — this becomes the workspace owner.
After signup, create your first workspace and database. Click Create new to add a table. Baserow presents a familiar spreadsheet-like grid where you define fields (text, number, date, link, formula, file, AI prompt) and add rows. Switch between Grid, Kanban, Gallery, Calendar, Form, and Survey views using the view selector.
To connect your team, go to Members in the sidebar and invite collaborators. All edits sync in real-time across users. Access the REST API at https:///api/ for programmatic data access.

About Hosting Baserow
Baserow is a privacy-first, open-source no-code platform built on Django (backend) and Nuxt.js (frontend), backed by PostgreSQL and Redis. It provides the power of a relational database with the simplicity of a spreadsheet.
Key features:
- Multiple views — Grid, Kanban, Calendar, Gallery, Form, and Survey on the same data
- Linked records — foreign-key relationships, lookups, and rollups across tables
- Built-in automations — trigger actions on row create/update/delete (email, webhook, row update)
- Application builder — build custom dashboards and interfaces on your data, no code required
- Real-time collaboration — live cursor tracking, instant cell updates across all users
- Full REST API — token-based CRUD for every table, with webhook support
- AI fields — generate cell values using OpenAI, Anthropic, or Mistral (bring your own API key)
This architecture separates concerns: the Backend handles API requests and WebSocket connections, the Frontend serves the Nuxt SSR UI, and Celery workers process background jobs (exports, automations, webhooks) asynchronously.
Why Deploy Baserow on Railway
- One-click deploy with six services pre-wired via private networking
- Independent scaling — add backend workers without duplicating the frontend
- Automatic TLS certificates and public URLs per service
- Persistent volume for media and file uploads
- No Docker Compose, Kubernetes, or reverse proxy to manage
Common Use Cases for Self-Hosted Baserow
- Custom CRM — track leads, deals, and customer interactions with linked records, Kanban pipelines, and form-based lead capture
- Project management — assign tasks, track progress with Calendar and Kanban views, automate status notifications via webhooks
- Data collection and surveys — publish Form and Survey views to collect structured input from external users directly into your database
- Internal tools and dashboards — use the application builder to create admin panels, reporting dashboards, and approval workflows without frontend code
Dependencies for Baserow on Railway
- Baserow Backend —
baserow/backend:2.2.0— Django/Gunicorn API server (port 8000) - Baserow Frontend —
baserow/web-frontend:2.2.0— Nuxt 3 SSR server (port 8080) - Celery Worker —
baserow/backend:2.2.0withcelery-workercommand — background task processing - Celery Beat —
baserow/backend:2.2.0withcelery-beatcommand — scheduled task scheduler - PostgreSQL — Railway-managed — relational data storage
- Redis — Railway-managed — caching, real-time events, Celery message broker
Environment Variables Reference for Self-Hosted Baserow
| Variable | Description | Required |
|---|---|---|
PUBLIC_WEB_FRONTEND_URL | Public URL of the Frontend UI service | Yes |
PRIVATE_BACKEND_URL | Internal Backend URL for Frontend SSR requests | Yes (Frontend) |
BASEROW_EXTRA_ALLOWED_HOSTS | Additional hostnames for Django ALLOWED_HOSTS | Yes (Backend) |
BASEROW_AMOUNT_OF_GUNICORN_WORKERS | Number of API worker processes | No (default: CPU count) |
BASEROW_TRIGGER_SYNC_TEMPLATES_AFTER_MIGRATION | Disable template sync on first boot | No |
Deployment Dependencies
- Runtime: Python 3.14 (backend), Node.js (frontend), PostgreSQL 15+, Redis 6+
- GitHub: baserow/baserow
- Docker Hub: baserow/backend | baserow/web-frontend
Hardware Requirements for Self-Hosting Baserow
| Resource | Minimum | Recommended |
|---|---|---|
| CPU (Backend) | 1 vCPU | 2 vCPU |
| RAM (Backend) | 2 GB | 4 GB |
| CPU (Frontend) | 0.5 vCPU | 1 vCPU |
| RAM (Frontend) | 512 MB | 1 GB |
| PostgreSQL | 1 vCPU / 1 GB RAM | 1 vCPU / 2 GB RAM |
| Redis | 0.5 vCPU / 512 MB RAM | 1 vCPU / 1 GB RAM |
| Storage | 10 GB | 20 GB+ (scales with uploads) |
Self-Hosting Baserow with Docker Compose
For a deployment outside Railway, use the official docker-compose.no-caddy.yml:
git clone https://github.com/baserow/baserow.git
cd baserow
cp .env.example .env
# Edit .env: set SECRET_KEY, DATABASE_PASSWORD, REDIS_PASSWORD, BASEROW_PUBLIC_URL
docker compose -f docker-compose.no-caddy.yml up -d
Or run individual services with Docker:
# Backend API
docker run -d --name baserow-backend \
-p 8000:8000 \
-e SECRET_KEY=$(openssl rand -hex 32) \
-e DATABASE_URL=postgresql://user:pass@db:5432/baserow \
-e REDIS_URL=redis://:pass@redis:6379 \
-e PUBLIC_BACKEND_URL=https://api.example.com \
-e PUBLIC_WEB_FRONTEND_URL=https://app.example.com \
-v baserow-media:/baserow/media \
baserow/backend:2.2.0
# Frontend
docker run -d --name baserow-frontend \
-p 3000:8080 \
-e PUBLIC_BACKEND_URL=https://api.example.com \
-e PUBLIC_WEB_FRONTEND_URL=https://app.example.com \
-e PRIVATE_BACKEND_URL=http://baserow-backend:8000 \
baserow/web-frontend:2.2.0
# Celery Worker
docker run -d --name baserow-celery \
-e SECRET_KEY= \
-e DATABASE_URL=postgresql://user:pass@db:5432/baserow \
-e REDIS_URL=redis://:pass@redis:6379 \
-v baserow-media:/baserow/media \
baserow/backend:2.2.0 celery-worker
Is Baserow Free to Self-Host?
Baserow's core is fully open source under the MIT license. Self-hosting is free with unlimited rows, storage, users, and API requests — no time limits or feature gates on the open-source edition. On Railway, your cost is infrastructure only. Optional paid add-ons (premium views like Kanban/Calendar/Survey, RBAC, SSO, audit logs) are available through Baserow's self-hosted Premium (~$12/user/month) and Enterprise (custom pricing) licenses.
Baserow vs NocoDB: Open-Source Airtable Alternatives on Railway
| Feature | Baserow | NocoDB |
|---|---|---|
| License | MIT (core) | Sustainable Use License |
| Self-host | Yes, free forever | Yes, free for internal use |
| Architecture | Own PostgreSQL + Redis | UI layer on existing DB |
| Real-time collab | Live cursor + instant sync | Requires page refresh |
| Application builder | Yes (no-code) | No |
| Automations | Built-in engine + webhooks | Webhooks only |
| Views | Grid, Kanban, Calendar, Gallery, Form, Survey | Grid, Kanban, Gallery, Form |
| Undo/Redo + Trash | Yes | No |
| AI fields | OpenAI, Anthropic, Mistral | No |
Baserow is the heavier but more complete platform — it replaces an entire stack of tools. NocoDB is lighter and ideal if you just need a spreadsheet UI on an existing database.
FAQ
What is Baserow and why self-host it? Baserow is an open-source no-code database platform — an Airtable alternative that lets teams build databases, automations, and apps without code. Self-hosting gives you full data ownership, unlimited usage, no per-seat pricing, and compliance with GDPR/HIPAA data residency requirements.
Why are there separate Backend and Frontend services instead of one container? The architecture lets each service scale independently. You can add more Backend workers for heavier API load without duplicating the Frontend. It also enables cleaner healthchecks, faster restarts, and works with the latest Baserow v2.2.0 (the all-in-one image has port mismatch issues on Railway with v2.1+).
Why does Baserow need PostgreSQL and Redis? PostgreSQL stores all databases, tables, rows, user accounts, and configuration. Redis serves as the cache layer, real-time event bus (for live collaboration), and message broker for Celery workers that process automations, exports, imports, and webhooks.
Can I connect Baserow to n8n or Zapier for automation? Yes. Baserow has official integrations for n8n (dedicated Baserow node) and Zapier (triggers + actions). You can also use the built-in webhook system to send row events to any HTTP endpoint, or use the REST API directly from any automation platform.
Does self-hosted Baserow support AI features?
Yes. Set BASEROW_OPENAI_API_KEY and BASEROW_OPENAI_MODELS on the Backend to enable AI-powered fields in tables. Anthropic and Mistral are also supported via their respective env vars. The AI Assistant (Kuma) chat requires an Enterprise license.
Template Content
Baserow Backend
baserow/backend:2.2.0Redis
redis:8.2.1Celery Beat
baserow/backend:2.2.0Baserow Frontend
baserow/web-frontend:2.2.0Celery Worker
baserow/backend:2.2.0
