Mengenal NocoDB: Spreadsheet di Atas Database, Bukan Airtable Clone
Review NocoDB: UI spreadsheet di atas Postgres/MySQL, self-hosted alternatif Airtable. REST API, view, dan catatan lisensi Sustainable Use 2026.
Masalahnya
Spreadsheet kolaboratif (Google Sheets, Excel online) nyaman untuk operasi harian. Begitu data tumbuh, relasi muncul, dan aplikasi butuh API, spreadsheet pecah: tipe longgar, tidak ada FK, concurrent edit kacau, backup manual.
Sisi lain: Postgres/MySQL sudah ada di server. Tim non-engineering tetap minta “tabel yang bisa di-sort, filter, form, kanban”. Opsi SaaS (Airtable, Smartsheet) cepat, tapi data di luar, harga naik, lock-in.
Yang dicari banyak tim: UI spreadsheet di atas database yang sudah dimiliki, self-hosted, plus REST API tanpa nulis CRUD dari nol.
NocoDB mengisi celah itu. Bukan “Airtable yang open-source” lagi (lihat bagian lisensi). Lebih tepat: no-code interface untuk SQL yang sudah jalan.
Apa itu NocoDB
NocoDB adalah platform self-hostable yang menaruh grid, gallery, form, kanban, dan calendar di atas SQLite, MySQL, atau PostgreSQL. Bisa buat base baru, atau hubungkan database existing (PG 14+, MySQL 5.7+) tanpa migrasi data ke SaaS.
Repo: 64.6k stars, ~5k forks, TypeScript, aktif sejak 2017. Cloud resmi di app.nocodb.com. Self-host lewat Docker, binary, atau installer “auto-upstall”.
| Metrik | Nilai |
|---|---|
| Bahasa | TypeScript |
| Stars (Agustus 2026) | 64.6k |
| Metadata store | SQLite (dev) / PostgreSQL (produksi) |
| External DB | PostgreSQL, MySQL; SQL Server & Oracle (Enterprise add-on) |
| View | Grid, Gallery, Form, Kanban, Calendar |
| API | REST + SDK + Swagger per base |
| RAM produksi (rekomendasi) | 8 GB (minimum 2 GB) |
| Lisensi (v0.301+, Jan 2026) | Fair-code Sustainable Use License |
Tim ops / non-engineering Developer
│ │
│ Grid / Form / Kanban │ REST / SDK / webhook
▼ ▼
┌─────────────────────────────────────────────┐
│ NocoDB │
│ views · roles · share link · app store │
└────────────────────┬────────────────────────┘
│
┌──────────┴──────────┐
▼ ▼
metadata (PG/SQLite) data source
PG / MySQL
(existing tables)
Dua lapisan yang sering tertukar:
- NC_DB: database metadata NocoDB sendiri (user, view, ACL). Produksi: Postgres, bukan SQLite di volume Docker.
- External data source: database bisnis yang di-connect. Tabel tetap di sana. NocoDB hanya layer UI + API.
Fitur yang paling sering dipakai
Grid dan view
Grid default: CRUD baris/kolom, sort, filter, group, hide kolom. Tipe sel: ID, Links, Lookup, Rollup, formula, attachment, currency, user, dll. View lain: Gallery (gambar), Form (input publik/internal), Kanban, Calendar.
View bisa collaborative atau locked. Base/view bisa dishare publik atau password. Role-based access di level workspace/base.
Ini yang membuat non-engineer betah: mereka tidak perlu psql. Engineer tetap lihat tabel asli di Postgres.
Connect database existing
Alur: Base → Connect External Data → pilih koneksi → test → add. Permission terpisah:
- Allow Data Edit: insert/update/delete record. Default: nyala.
- Allow Schema Edit: create/alter/drop table dan relasi dari UI. Default: mati. NocoDB sendiri menasihati jangan nyalakan kecuali terpaksa.
Lookup, Rollup, Formula, view, dan webhook tetap bisa meski schema edit off. Kolom virtual itu tidak mengubah DDL database sumber.
SQL Server dan Oracle tersedia sebagai add-on Enterprise, bukan Community.
REST API otomatis
Tiap base punya data API dan meta API. Auth via API token. Swagger UI di instance. SDK resmi untuk pemanggilan terprogram. Webhook ke Slack, Discord, SMTP, S3/MinIO lewat App Store.
Pola yang masuk akal: operasi isi data lewat NocoDB, aplikasi baca/tulis lewat REST, Postgres tetap source of truth. Bukan ganti backend domain yang rumit.
Self-host
Docker + SQLite (coba lokal):
docker run -d \
--name noco \
-v "$(pwd)"/nocodb:/usr/app/data/ \
-p 8080:8080 \
nocodb/nocodb:latest
Docker + Postgres (metadata):
docker run -d \
--name noco \
-v "$(pwd)"/nocodb:/usr/app/data/ \
-p 8080:8080 \
-e NC_DB="pg://host.docker.internal:5432?u=root&p=password&d=d1" \
-e NC_AUTH_JWT_SECRET="ganti-dengan-secret-panjang" \
nocodb/nocodb:latest
Dashboard: http://localhost:8080/dashboard.
Produksi satu server: installer auto-upstall (install.nocodb.com/noco.sh) menyiapkan Docker Compose + Postgres + Redis + Traefik + SSL. Butuh domain. Binary ada untuk tes lokal, bukan untuk production.
Lisensi: source available, bukan OSI
Sejak v0.301.0 (Januari 2026) NocoDB pindah dari AGPLv3 ke Sustainable Use License. GitHub menandai license: Other. Ini fair-code / source available, bukan open source menurut definisi OSI.
Intinya (baca LICENSE.md, bukan ringkasan ini):
- Boleh pakai, copy, modify untuk internal bisnis, non-komersial, atau pribadi
- Distribusi ke orang lain hanya gratis dan untuk tujuan non-komersial
- Menawarkan NocoDB sebagai hosted/managed service ke pihak ketiga butuh lisensi komersial
Self-host untuk tim sendiri tetap sah. Jangan klaim “open-source Airtable alternative” di dokumen internal 2026. Fork lama AGPL masih ada di sejarah git, tapi rilis baru ikut SUL.
Paket berbayar (Business / Scale / Enterprise) menambah SSO, audit log, row-level security, airgap, dll. Community tetap bisa self-host tanpa bayar, dengan batasan lisensi di atas.
Di mana posisinya di toolbox?
| Kebutuhan | Pilihan |
|---|---|
| UI spreadsheet di atas Postgres yang sudah ada | NocoDB |
| Client SQL untuk engineer (query, ER, diff) | DBX |
| Backend aplikasi dengan domain ketat | AdonisJS / Laravel + migrasi, bukan NocoDB sebagai source of truth aplikasi |
| SaaS spreadsheet tanpa ops | Airtable / NocoDB Cloud |
| Postgres “cukup” tanpa layer no-code | filosofi stack Postgres |
NocoDB bukan pengganti pgAdmin/DBX. Ia layer kolaborasi. Query planner, index, backup tetap pekerjaan DBA/engineer.
Kapan memakai / kapan menunda
| Situasi | Saran |
|---|---|
| Tim ops butuh CRUD di tabel Postgres existing | Pakai NocoDB, schema edit off |
| Internal tool: inventory, ticket ringan, direktori | Pakai NocoDB |
| Form publik + attachment ke MinIO/S3 | Pakai NocoDB |
| Ingin jual NocoDB sebagai SaaS sendiri | Tunda. Butuh lisensi komersial |
| Skema rumit, trigger, RLS, partisi, banyak schema | Hati-hati. Test reflection di staging. Beberapa relasi cross-schema tidak ter-map rapi |
| Aplikasi transactional dengan invariant ketat | Tulis backend. Jangan andalkan grid sebagai API utama |
Catatan praktis
- Produksi: Postgres untuk NC_DB. SQLite di volume Docker cukup demo. Backup metadata = backup Postgres itu, plus volume attachment.
- Jangan nyalakan schema edit ke database aplikasi. Salah klik drop column dari UI lebih mudah daripada
psql. - User DB untuk koneksi external: privilege minimum (DML saja kalau schema edit off).
- Rekomendasi hardware produksi: 4 vCPU / 8 GB RAM / 50 GB disk. Minimum 2 vCPU / 2 GB.
- Set
NC_AUTH_JWT_SECRETsendiri. Jangan pakai contoh README. - Relasi lintas schema di satu cluster PG kadang tidak terbaca sebagai relasi NocoDB. Uji dulu, jangan asumsi ER Anda 1:1 muncul di UI.
- Produk bergerak cepat (ratusan issue terbuka). Pin versi image, baca changelog sebelum
latestdi production.
Penutup
NocoDB paling masuk akal sebagai pintu kolaborasi ke SQL yang sudah Anda pegang, bukan sebagai database baru. Grid, form, API, self-host: itu nilai utamanya. Lisensi 2026 mengubah cara kita menyebutnya (source available), tapi tidak menghapus hak self-host untuk pemakaian internal.
Kalau pain-nya “non-engineer tidak mau buka DBeaver, data tetap harus di Postgres”, NocoDB pantas dicoba di staging. Kalau pain-nya “saya butuh Airtable gratis selamanya, bebas dijual ulang”, baca dulu SUL. Itu bukan deal yang sama.
Sumber: github.com/nocodb/nocodb · nocodb.com/docs · LICENSE.md · diskusi lisensi #12891