Railway

Deploy NocoDB — Open Source Airtable Alternative

Turn Postgres into a smart spreadsheet — grid, kanban, forms, API

Deploy NocoDB — Open Source Airtable Alternative

Just deployed

/usr/app/data/

/var/lib/postgresql/data

Just deployed

/data

Deploy and Host NocoDB on Railway

NocoDB is a self-hosted, open-source no-code database platform — the leading Airtable alternative. It turns a PostgreSQL database into a smart spreadsheet with grid, gallery, kanban, calendar, and form views, gives non-technical teammates a browser interface to work in, and exposes an auto-generated REST API on top of your data. Unlimited users, unlimited records, no per-seat pricing.

This template deploys NocoDB with a managed PostgreSQL database and a persistent volume, pre-wired and ready to use in minutes.


What This Template Deploys

ServicePurpose
NocoDBThe no-code spreadsheet UI and auto-generated REST API on port 8080
PostgreSQLPrimary store for metadata, users, and your bases and tables

Both services run on Railway's private network, connected automatically through the NC_DB reference variable. A persistent volume holds attachments and uploaded files.


About Hosting NocoDB

NocoDB gives you the Airtable experience — tables, views, forms, linked records, rollups — while keeping every row in a PostgreSQL database you own. There is no record cap, no per-editor bill, and no vendor holding your data. You can also point NocoDB at an existing external PostgreSQL or MySQL database and instantly get a spreadsheet interface over data you already have.

Running it in production means an application server, a reliable Postgres store, persistent file storage for attachments, and a couple of Railway-specific settings that matter. This template handles all of it. PostgreSQL is provisioned and connected on deploy, a volume persists uploads across redeploys, and the memory limit that prevents NocoDB's most common startup crash on Railway is set for you.

Typical cost: ~$5–10/month on Railway's Hobby plan for a small-team deployment with Postgres — flat, regardless of how many users or records you add.


Deploy in Under 5 Minutes

  1. Click Deploy on Railway and wait for both services to build (~3 minutes)
  2. Open the generated Railway domain to reach the first-time setup wizard
  3. Create your admin account with an email and password
  4. Create a workspace, then a new base — start empty or import from CSV, Excel, or Airtable
  5. Build tables and views, or connect an existing database to turn it into a spreadsheet instantly

The schema initialises automatically on first boot — there is no manual database setup.


Common Use Cases

  • Airtable replacement — the same grid, kanban, gallery, calendar, and form views with unlimited users and records at a flat cost
  • Custom CRM — linked tables, rollups, and form-based data entry for contacts, deals, and pipelines
  • Inventory and operations tracking — manage stock, suppliers, and orders with gallery views for product catalogs
  • Internal tools — replace scattered spreadsheets with a structured database non-technical staff can update safely
  • Instant REST API over existing data — connect an existing Postgres or MySQL database and get an auto-generated API without writing backend code
  • Project and content planning — kanban and calendar views over shared tables for teams that outgrew a spreadsheet

Configuration

VariableRequiredDescription
NC_DBAuto-injectedPostgreSQL connection string built from Railway reference variables
NC_AUTH_JWT_SECRETAuto-generatedSigns authentication tokens — keep stable across restarts
NC_PUBLIC_URLRequiredYour Railway domain — used for share links, invites, and email content
NODE_OPTIONSPre-set--max-old-space-size=512 — required on Railway to prevent heap out-of-memory crashes at startup
NC_ADMIN_EMAILOptionalPre-seed the super admin email (must be set together with the password)
NC_ADMIN_PASSWORDOptionalPre-seed the super admin password (must be set together with the email)
NC_REDIS_URLOptionalAdd a Redis service for caching on busier multi-user deployments
NC_DISABLE_TELEOptionalSet to true to disable anonymous telemetry
NC_ATTACHMENT_FIELD_SIZEOptionalMaximum attachment size in bytes

NODE_OPTIONS is not optional in practice. Without --max-old-space-size=512, NocoDB frequently crashes with a JavaScript heap out-of-memory error during startup on Railway. This template sets it for you — leave it in place.

Set NC_PUBLIC_URL to your real domain. Share links, form URLs, and invitation emails are built from it. If it's wrong, those links break.


Dependencies for NocoDB Hosting

  • Railway account — Hobby plan (~$5–10/month) covers NocoDB and Postgres
  • Optional: a Railway Redis service for caching on larger or multi-user deployments
  • Optional: SMTP credentials if you want invitation and notification emails
  • Optional: S3-compatible storage to hold attachments outside the volume at scale

Deployment Dependencies

Implementation Details

The template runs the official nocodb/nocodb:latest image on port 8080 against a Railway PostgreSQL service. NocoDB connects through NC_DB, assembled from Railway reference variables — the private domain and Postgres credentials — so there are no hardcoded connection strings to maintain.

NODE_OPTIONS=--max-old-space-size=512 is set because NocoDB's Node.js runtime otherwise exceeds Railway's default heap allowance during startup and crash-loops. A Railway volume persists attachments and uploaded files, which would otherwise be lost on redeploy since the container filesystem is ephemeral. PostgreSQL remains the single source of truth for structured data.

NocoDB now standardises on PostgreSQL for self-hosted deployments and has deprecated its pre-built executables in favour of Docker, so this containerised setup is the supported, forward-compatible path. For heavier multi-user workloads, attach a Redis service and set NC_REDIS_URL to enable caching.


Frequently Asked Questions

Is this really unlimited users and records? Yes. Self-hosted NocoDB has no seat or record caps — your only cost is Railway infrastructure. Some premium features like AI fields and advanced enterprise auth require a paid license, but the core no-code database is fully open source.

Can I connect an existing database? Yes. Beyond the Postgres it deploys for its own metadata, NocoDB can connect to an existing external PostgreSQL or MySQL database as a data source and give it a spreadsheet interface immediately.

Why does it need PostgreSQL? NocoDB stores its own metadata — bases, views, users, permissions — in PostgreSQL, and self-hosted license activation now requires Postgres specifically. It is a required dependency.

Why is NODE_OPTIONS set? NocoDB's startup can exceed Railway's default Node.js heap and crash with an out-of-memory error. Setting --max-old-space-size=512 prevents this. The template configures it for you.

Do my attachments survive a redeploy? Yes, because they're written to the mounted Railway volume. For large-scale attachment storage, configure S3-compatible object storage instead.

How many users can it handle? It runs comfortably for small teams on a Hobby-plan deployment. For busier multi-user use, add a Redis service via NC_REDIS_URL and scale the NocoDB service vertically.

Can I import from Airtable? Yes. NocoDB imports from CSV, Excel, and Airtable, so you can migrate existing bases into your self-hosted instance.


Why Deploy NocoDB 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 NocoDB on Railway you get a self-hosted Airtable alternative that is yours end to end — NocoDB and PostgreSQL pre-wired over a private network, automatic HTTPS, a persistent volume for attachments, and the memory setting that keeps it stable on Railway already in place. Own your data, skip per-seat pricing, and run your no-code database alongside the rest of your stack.


Template Content

More templates in this category

View Template
Garage S3 Storage
Ultra-light S3 server: fast, open-source, plug-and-play.

PROJETOS
7
View Template
Postgres Backup to Cloudflare R2 (S3-Compatible)
Automated PostgreSQL backups to S3-compatible storage with encryption

Artour
7
View Template
ReadySet
A lightweight caching engine for Postgres

Milo
35