Installed Apr 30, 2026 alongside Directus to compare UX over a few days.
Summary
| URL | https://nocodb.edmd.me |
| Local | http://192.168.8.100:8080 |
| Container | nocodb/nocodb:latest on CT100 |
| Compose | /opt/nocodb/docker-compose.yml |
| Metadata DB | nocodb_meta on 192.168.8.100:5432 (separate from farmdb to avoid pollution) |
| Data DB | farmdb (added as a Data Source via the NocoDB UI) |
| Volume | /mnt/container-data/nocodb |
Setup notes
- Auth secret at
/opt/nocodb/secrets.env(NC_AUTH_JWT_SECRET, random hex 48). Should be moved to Vaultwarden. - Telemetry disabled:
NC_DISABLE_TELE=true - Public URL:
NC_PUBLIC_URL=https://nocodb.edmd.meset so links emitted by NocoDB use the right domain. - Critical for private-network DBs:
NC_ALLOW_LOCAL_EXTERNAL_DBS=trueโ without this, NocoDB’s SSRF protection (tightened in v0.301.4 March 2026) blocks connections to RFC1918 addresses like192.168.8.100:5432. Symptom: “Forbidden host name or IP address” when adding a Data Source. The deprecatedSSRF_ALLOWED_DOMAINSenv var no longer works.
Why NocoDB
NocoDB presents a more spreadsheet-shaped UI compared to Directus’s form-shaped admin UI. Strengths:
- Airtable-style grid view with inline editing, sorting, filtering
- Multiple views per table (grid, gallery, kanban, calendar)
- Easier to scan many records at once
- More familiar to non-technical users
Like Directus, it sits on top of farmdb without restructuring data. Edits made in NocoDB are visible in Directus, the Farm MCP, and direct psql.
Caveats
- License: NocoDB switched to “Sustainable Use License” โ fine for personal/homelab use, less open than it was. Directus is BSL but free under usage threshold.
- Two UIs editing the same data: Don’t run Directus and NocoDB long-term simultaneously. Decision deadline: ~1 week of side-by-side use, then commit to one.
directus_*tables visible: When connecting NocoDB tofarmdb, deselect the 30directus_*system tables during schema import to avoid sidebar clutter.