---
title: "Deploy NocoBase — No-Code Platform for CRMs & Internal Tools"
description: "Self-host NocoBase — build CRMs, ERPs & internal tools, no code"
category: "CMS"
url: https://railway.com/deploy/nocobase-internal-tools-platform
---

# Deploy NocoBase — No-Code Platform for CRMs & Internal Tools

Self-host NocoBase — build CRMs, ERPs & internal tools, no code

**[Deploy NocoBase — No-Code Platform for CRMs & Internal Tools on Railway](https://railway.com/template/nocobase-internal-tools-platform)**

- **Creator:** SilverBanana
- **Category:** CMS

## Template content

### Postgres https://devicons.railway.app/i/postgresql.svg

- **Image:** ghcr.io/railwayapp-templates/postgres-ssl:18

### Nocobase https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/nocobase-light.png

- **Image:** nocobase/nocobase:latest-full

## Documentation

# Deploy and Host NocoBase on Railway

NocoBase is an open-source, plugin-based no-code/low-code platform for building business applications — CRMs, ERPs, project trackers, inventory systems, and internal tools, without writing code. Think WordPress, but for business apps: a data-model-driven core you extend with plugins from an in-app marketplace or your own. This template deploys it with a managed PostgreSQL database and persistent storage, on infrastructure you own.

---

## What This Template Deploys

| Service | Purpose |
| --- | --- |
| **NocoBase** | The application builder, admin UI, and API (`nocobase:latest-full`) on port `80` |
| **PostgreSQL** | Collections, records, user accounts, and plugin state |

Both services run on Railway's private network. A persistent volume at `/app/nocobase/storage` holds uploads, installed plugins, and application state — required, or your setup resets on redeploy.

---

## About Hosting

NocoBase is a Node.js application on PostgreSQL, and two configuration facts determine whether a deployment survives — both are easy to get wrong and this template handles them.

**`APP_KEY` is permanent, and changing it breaks every login.** NocoBase signs all user tokens with `APP_KEY`. If it changes or is lost, every existing token is instantly invalidated and users are logged out — and because tokens can't be regenerated against a new key, this is disruptive rather than recoverable. Generate it once (`openssl rand -hex 32`), keep it stable, and back it up. This template sets it at deploy so it doesn't regenerate.

**The storage volume is not optional.** NocoBase stores uploaded files, **installed plugins**, and application state under `/app/nocobase/storage`. That plugin detail is the one people miss: without the volume, a redeploy wipes not just uploads but every plugin you've added, resetting the platform to a bare install. This template mounts it.

One more production note the default setup handles: NocoBase uses PostgreSQL with `wal_level=logical` for certain data-source and sync features, so the database is configured for it here rather than the stock default.

NocoBase differs from spreadsheet tools like Airtable or NocoDB — it's a full application platform. You model your data, then compose blocks, forms, workflows, and permissions into real apps, extending with plugins rather than being limited to a grid. First boot takes a couple of minutes while it initializes.

Typical cost: **~$5–15/month** on Railway for NocoBase and Postgres. Retool, Airtable, and similar low-code platforms bill per user or per app; NocoBase's community edition is free with no seat cap.

---

## How It Compares

| | NocoBase (self-hosted) | Retool | Airtable | NocoDB |
| --- | --- | --- | --- | --- |
| Cost model | Flat ~$5–15/mo infra | Per user/month | Per user/month | Self-hosted |
| Primary use | App/tool builder | Internal tools | Spreadsheet-database | Spreadsheet-database |
| Data ownership | Full | Vendor | Vendor | Full |
| Plugin ecosystem | Yes, extensible | Limited | No | Limited |
| Workflows & permissions | Built-in | Built-in | Limited | Limited |
| Self-hostable | Yes | Limited | No | Yes |

Airtable and NocoDB are spreadsheet-databases — great for structured data, limited as app builders. Retool is a strong internal-tools platform but priced per user and not fully open. NocoBase's niche is a genuinely open, plugin-extensible platform for building complete business applications, with your data and logic on infrastructure you own.

---

## Deploy in Under 5 Minutes

1. Click **Deploy on Railway** — NocoBase and PostgreSQL build automatically (first boot takes a couple of minutes to initialize)
2. Confirm `APP_KEY` and `ENCRYPTION_FIELD_KEY` are set, and save them externally
3. Confirm the volume is mounted at `/app/nocobase/storage`
4. Set `INIT_ROOT_EMAIL` and `INIT_ROOT_PASSWORD` for the first admin account
5. Open your Railway domain, log in, and start modeling data and building apps

Install plugins from the in-app marketplace to add CRM, workflow, and other capabilities.

---

## Common Use Cases

- **Custom CRM** — build a sales pipeline, contact manager, and deal tracker tailored to your process, not a template you fight
- **Internal tools and admin panels** — data entry, approval workflows, and dashboards over your own database
- **ERP and operations systems** — inventory, orders, and resource tracking as connected collections with business logic
- **Plugin-extended applications** — add capabilities from the marketplace or build custom plugins for bespoke logic
- **Data-driven business apps** — any structured-data application where you want the model, workflows, and UI under your control

---

## Configuration

| Variable | Required | Description |
| --- | --- | --- |
| `APP_KEY` | Required | Signs user tokens — `openssl rand -hex 32`. Changing it logs everyone out permanently |
| `ENCRYPTION_FIELD_KEY` | Required | Encrypts sensitive field data — keep stable |
| `DB_DIALECT` | Pre-set | `postgres` |
| `DB_HOST` | Auto-injected | PostgreSQL host via Railway reference variable |
| `DB_PORT` | Auto-injected | PostgreSQL port |
| `DB_DATABASE` | Auto-injected | Database name |
| `DB_USER` | Auto-injected | Database user |
| `DB_PASSWORD` | Auto-injected | Database password |
| `INIT_ROOT_EMAIL` | Required | First admin account email |
| `INIT_ROOT_PASSWORD` | Required | First admin password — use a strong value |
| `APP_ENV` | Pre-set | `production` |
| `TZ` | Optional | Timezone, e.g. `Asia/Kolkata` |

> **`APP_KEY` is permanent — set it once and never change it.** It signs every user token. Changing or losing it invalidates all logins with no recovery. Generate with `openssl rand -hex 32` and back it up.

> **The `/app/nocobase/storage` volume holds plugins too.** Uploads, installed plugins, and app state live there. Without the volume, a redeploy wipes your plugins and files, resetting the platform to a bare install.

---

## Dependencies for NocoBase Hosting

- Railway account — Hobby plan (~$5–15/month) covers both services
- A persistent Railway volume at `/app/nocobase/storage` (included)
- PostgreSQL with `wal_level=logical` for full feature support (configured)
- Optional: SMTP credentials for email notifications and password resets

### Deployment Dependencies

- [NocoBase GitHub Repository](https://github.com/nocobase/nocobase)
- [NocoBase Documentation](https://docs.nocobase.com/)
- [Docker Installation Guide](https://docs.nocobase.com/get-started/installation/docker)
- [Railway Volumes Documentation](https://docs.railway.com/volumes)

### Implementation Details

The template runs `nocobase/nocobase:latest-full` on port `80` against a managed Railway PostgreSQL service. The `-full` image bundles the standard plugin set, so the platform is usable immediately rather than requiring plugins to be installed before it does anything. Database credentials are supplied through Railway reference variables with `DB_DIALECT=postgres`.

`APP_KEY` is generated at deploy and must remain stable, since it signs user tokens and changing it invalidates every session with no recovery path. A persistent volume at `/app/nocobase/storage` holds uploads, installed plugins, and application state — the plugin persistence is why the volume is essential and not merely a convenience.

PostgreSQL is configured with `wal_level=logical`, which NocoBase relies on for certain data-source and synchronization features. First boot runs initialization and database migrations, taking a couple of minutes; subsequent deploys are faster. The image can be pinned to a specific version tag rather than `latest-full` to make upgrades deliberate.

---

## Frequently Asked Questions

**How is NocoBase different from NocoDB or Airtable?** Those are spreadsheet-databases — excellent for structured data in a grid. NocoBase is a full application platform: you model data, then build forms, workflows, permissions, and custom UI into complete business apps, extended with plugins. Different tool for a bigger job.

**Why is `APP_KEY` so important?** It signs all user authentication tokens. If it changes or is lost, every login is invalidated with no recovery, so it must be set once and kept stable. This template generates it at deploy.

**Do my plugins survive a redeploy?** Only with the `/app/nocobase/storage` volume mounted. Installed plugins live there alongside uploads and app state. Without the volume, a redeploy resets the platform to a bare install — the most damaging NocoBase deployment mistake.

**Is the community edition really free?** Yes. NocoBase's community edition is free with no user cap and supports all open-source plugins from the marketplace. Commercial plugins and enterprise support are available separately.

**Does my data persist across redeploys?** Yes. Collections and records live in PostgreSQL, and files and plugins on the storage volume, both persisting across redeploys. Back up the database regularly.

**How do I add capabilities like CRM or workflows?** Install plugins from the in-app marketplace through the admin interface, or build your own. The `-full` image includes the core set to start.

---

## Why Deploy NocoBase 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 NocoBase on Railway you get a no-code application platform with the persistence pitfalls solved — a stable `APP_KEY`, the storage volume that keeps your plugins, PostgreSQL configured correctly, and automatic HTTPS. Build CRMs, ERPs, and internal tools without code, with your data and applications on infrastructure you own.

## Similar templates

- [Libredesk - Complete Setup](https://railway.com/deploy/libredesk-complete-setup) — [Jul'26] Complete self-hosted omnichannel customer support desk.
- [Paperless-ngx](https://railway.com/deploy/paperless-ngx-3) — Document management with OCR on Railway with PostgreSQL and Redis
- [Instatic CMS - Postgres](https://railway.com/deploy/instatic-cms-postgres) — Design, build and manage powerful static sites from state-of-the-art CMS

Open this page in a browser: https://railway.com/deploy/nocobase-internal-tools-platform
