Why self-host a no-code internal tool builder
SaaS no-code platforms are convenient until you hit the pricing wall: Retool charges per monthly active user, AppSmith limits collaborators on the free tier, and your CRM data sits on a third-party server. Self-hosting NocoBase inverts the model: quota-free users, quota-free collections, and your data stays in a PostgreSQL volume on your VPS — exportable at any time via the REST API. At ~800 MB RAM at idle, two Docker containers are all it takes.
What you get with a self-hosted NocoBase
- Data-model-first approach — define entities, fields and relations first, then build the UI on top. No spreadsheet-grid compromises.
- 80+ first-party plugins — Kanban, Gantt, calendar view, chart blocks, file manager, approval workflows and more — all installable from the plugin manager.
- Field-level permissions — control who can see, edit or delete each field per role, useful for hiding salary columns from managers or locking audit fields.
- REST API auto-generation — every collection you create gets a REST API with filtering, sorting, pagination and relation loading. Build mobile apps or webhooks on top without writing backend code.
- Multi-data-source support — connect external PostgreSQL, MySQL or MariaDB databases and surface their tables as NocoBase collections alongside your main store.
- Visual workflow engine — drag-and-drop automation with conditions, loops, HTTP requests and database triggers for approval chains or scheduled tasks.
- Apache-2.0 licence — no telemetry, no seat limits, no forced upgrades.
Prerequisites
- A ServOrbit VPS with at least 2 GB RAM and Ubuntu 24.04 (Docker is provisioned automatically).
- A domain name (optional for first access — NocoBase works fine on
http://your-vps-ip:13000for internal use). - 15 minutes of setup time.
Deploy NocoBase on your VPS
Order a ServOrbit VPS
A 2 vCPU / 2 GB RAM plan on Ubuntu 24.04 is ideal. NocoBase with PostgreSQL 16 idles under 800 MB RAM; 2 GB gives headroom for active plugin use and concurrent users. A 1 GB plan works for evaluation.
One-click deploy from the Marketplace
Open your ServOrbit control panel, go to Marketplace → Development → NocoBase, and click Deploy. AWX provisions Docker, generates a random APP_KEY and database password, writes the
.envfile and starts theapp+postgrescontainers. The interface is accessible in about 30 seconds.Create your admin account
Navigate to
http://your-vps-ip:13000. The first-run wizard asks you to choose the system language, set your time zone and create the root admin account. Once logged in you land on the NocoBase dashboard — PostgreSQL is already configured and ready.Build your first collection
Click Settings → Data Sources → Main → Collections → Create. Add fields: text, number, date, select, relation, rich text — NocoBase supports 20+ field types. Save, then click UI Configuration at the top right to drag a Table block and a Form block onto your first page. Your internal app is taking shape.
Set up roles and invite your team
Go to Settings → Users & Permissions → Roles. Create roles (e.g. Sales, Finance, Read-only) and assign field-level permissions per collection. Then invite users from Settings → Users. Each user sees only what their role allows — you can hide salary columns from managers or lock audit fields to read-only without writing any code.
Logging in for the first time
Open the URL and log in with the address [email protected] and the password provided, then change it from your profile.
Use case: self-hosted CRM for a Morocco-based agency
A digital agency tracking 40 client accounts in spreadsheets is losing context across projects. With NocoBase on a ServOrbit VPS: create a Clients collection (name, sector, MRR, account manager), link it to a Projects collection (status, deadline, deliverables) and a Contacts collection (email, role, last interaction). The Kanban plugin turns the Projects collection into a pipeline view; the workflow engine sends an email to the account manager when a project moves to the Blocked status. Total setup time: under two hours. Monthly cost: the VPS plan — no per-seat SaaS fee.
Data backup and portability
NocoBase stores all metadata and content in the nocobase_db PostgreSQL volume. Back it up with docker compose exec postgres pg_dump -U nocobase nocobase > nocobase_backup.sql. User-uploaded files live in the nocobase_storage volume — copy the entire directory. Both volumes survive container restarts and image updates. To migrate to a new VPS, export both volumes and run docker compose up on the new host — your instance is portable without any vendor lock-in.
Post-install configuration: nginx reverse proxy and Let's Encrypt TLS
In production you will want to serve NocoBase over HTTPS on a domain name rather than directly on port 13000. Here is how to set up nginx as a reverse proxy with a free Let's Encrypt certificate.
Install nginx and certbot on your VPS:
apt install -y nginx certbot python3-certbot-nginxCreate an nginx configuration file for your domain (replace nocobase.yourdomain.com with your subdomain):
server {
listen 80;
server_name nocobase.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:13000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
client_max_body_size 50m;
}
}Enable the configuration and obtain the TLS certificate:
nginx -t && systemctl reload nginx
certbot --nginx -d nocobase.yourdomain.comCertbot automatically patches the nginx config to redirect HTTP to HTTPS and sets up automatic certificate renewal (valid 90 days, renewed every 60 days via a systemd timer). Your NocoBase instance is now available at https://nocobase.yourdomain.com.
Key plugins to install: Kanban, Gantt and workflows
NocoBase ships with 80+ official plugins available from Settings → Plugin Manager. Here are the three most impactful for business tools:
Kanban plugin — Turns any collection into a column-based Kanban board. Configure a 'status' field (select type) as the column dimension. Cards are drag-and-droppable and update the database field in real time. Ideal for task tracking, sales pipelines or support ticket management.
Gantt plugin — Visualises collections with start-date and end-date fields as an interactive Gantt chart. Bars are resizable and draggable. Relation-aware: display dependencies between tasks in a project.
Workflow engine — The most powerful plugin: trigger automations on event (row create, update, delete), on schedule (cron) or via an API call. Build multi-level approval chains, conditional email notifications or HTTP-based integrations with external services — no code required.
To install a plugin: Settings → Plugin Manager → Add → select from the official list → Enable. Official plugins are bundled at no extra cost in the latest-full image.
Updating NocoBase
NocoBase releases updates frequently (roughly every two weeks). Updating means pulling the new Docker image and restarting the containers — database migrations run automatically on startup.
cd /opt/nocobase # folder where your docker-compose.yml lives
docker compose pull # pull the new nocobase/nocobase:latest-full image
docker compose down
docker compose up -d
docker compose logs -f app # watch startup and migrationsWait for the message NocoBase server running at http://0.0.0.0:13000 before reopening the interface.
Best practices before updating: always back up the database with pg_dump (see backup section above), check the release notes at github.com/nocobase/nocobase/releases for breaking changes, and schedule the update during off-hours if your team uses the tool in production.
If a migration fails: containers will restart in a loop. Inspect with docker compose logs app — the migration error is shown explicitly. Restore your PostgreSQL dump, then open a GitHub issue with the logs attached.
Troubleshooting: common startup errors
Error: APP_KEY is required
NocoBase refuses to start if APP_KEY is missing or empty in the .env file. This key encrypts sessions and API tokens — it must be a random string of at least 32 characters. Generate one with openssl rand -hex 32 and add it to .env:
APP_KEY=your_random_key_hereThen restart with docker compose up -d.
Error: Plugin installation timeout
Occurs when the connection to NocoBase's npm registry is slow or interrupted during plugin installation. Wait 60 seconds and retry from the UI. If the issue persists, check that your VPS has internet access (curl -I https://registry.npmjs.org). The latest-full image bundles all official plugins locally — use it to avoid this problem.
Error: Port 13000 already in use
Another process is already listening on port 13000. Identify it with ss -tlnp | grep 13000. Either stop the conflicting process or change NocoBase's port by setting APP_PORT=13001 in .env (and updating your nginx config accordingly).
postgres container restarting in a loop
Check available disk space with df -h. PostgreSQL fails when the volume is full. Free up space or resize the disk from your ServOrbit control panel. Inspect the container logs: docker compose logs postgres.
Interface unreachable after update
If the interface stops responding on port 13000 after an update, check that containers are running (docker compose ps) and that migrations have completed (docker compose logs app | grep -i migration). Allow 1–3 minutes for migrations on large databases.
NocoBase vs Appsmith vs Budibase: comparison table
Choosing the right no-code platform depends on your priorities: rich data modelling, flexible UI builder, or out-of-the-box integrations.
| Criteria | NocoBase | Appsmith | Budibase |
|---|---|---|---|
| Data model | Native (collections + relations) | External connector only | Native + external connector |
| Built-in database | PostgreSQL 16 | None | SQLite / PostgreSQL |
| Plugins / components | 80+ official | 45+ widgets | 30+ components |
| Workflow / automation | Visual engine included | Via custom JS | Automations included |
| Field-level permissions | Yes | No | Limited (row-level) |
| Licence | Apache-2.0 | Apache-2.0 | GPL-3.0 |
| Free cloud plan | No (self-host only) | Yes (5 users) | Yes (5 users) |
| Min RAM (self-host) | ~800 MB | ~1.5 GB | ~512 MB |
| Multi-data-source | Yes (PG, MySQL, MariaDB) | Yes (25+ connectors) | Yes (PG, MySQL, REST, S3…) |
Summary: NocoBase excels when your project revolves around a complex data model with entity relationships and granular permissions — typically a CRM, a lightweight ERP or a client portal. Appsmith is better suited to building dashboards that consume existing APIs without storing data. Budibase stands out for its low footprint and rapid deployment for simple forms or intranets.