ChuhaiCRM

CRM multi-tenant, dibangun secara terbuka

Pelanggan, peluang, penawaran, pengiriman, keuangan dan persetujuan — untuk perusahaan jasa bisnis di Indonesia. Backend Go, row-level security PostgreSQL, frontend React.

Masih awal tetapi nyata: backend sudah berjalan di produksi dan isolasi tenant terverifikasi. Keuangan dan komisi belum dibangun — baca Status sebelum memutuskan.

235layanan dalam katalog produk yang berjalan
3bahasa di seluruh antarmuka
RLSisolasi tenant terverifikasi di basis data
AGPL-3.0sumber terbuka, lisensi komersial dimungkinkan

Kondisi sebenarnya

Tabel yang sama seperti di README, dijaga jujur. Tidak ada yang ditandai selesai kecuali sudah berjalan di produksi.

Fondasi backend Go (tenant, autentikasi, izin) Jalan
Kode selesai dan sudah berjalan di produksi.
Isolasi multi-tenant (RLS PostgreSQL) Jalan
Sudah diverifikasi pada basis data sungguhan: satu tenant tidak bisa menjangkau baris tenant lain, bahkan dengan kueri eksplisit.
Frontend React Sedang dikerjakan
Seluruh 25 modul tersedia. Lapisan service dialihkan modul demi modul dari protokol PHP lama ke API Go.
Modul bisnis (pelanggan, peluang, pengiriman, keuangan…) Sedang dikerjakan
Produk, pelanggan, peluang, penawaran dan pengiriman sudah jalan. Keuangan dan komisi belum ditulis.

Cara sistem ini disusun

Go 1.23 + Echo v4
Rantai middleware menangani tenant, autentikasi dan pembatasan laju.
PostgreSQL 16 + row-level security
Setiap permintaan menetapkan app.tenant_id. Aplikasi terhubung sebagai peran non-owner, sehingga handler yang lupa WHERE tenant_id tetap ditahan oleh basis data.
sqlc + pgx/v5
SQL ditulis tangan lalu menghasilkan Go yang type-safe. Tanpa ORM, sehingga kueri yang dijalankan laporan sama dengan yang Anda baca.
JWT, access 15m + refresh 7h yang dapat dicabut
Login memakai kode tenant + nama pengguna + kata sandi; nama pengguna unik dalam satu tenant.
React 18 + umi + Ant Design
Tiga bahasa di seluruh antarmuka: Inggris, Bahasa Indonesia, 简体中文.

Langkah berikutnya

Berurutan. Setiap langkah harus berhasil sebelum langkah sesudahnya berarti.

  1. Selesaikan pengalihan lapisan service frontend, modul demi modul, dari protokol action PHP ke REST API Go.
  2. Bangun unggah berkas untuk pengiriman, agar dokumen sebuah tugas tersimpan di sistem, bukan di percakapan chat.
  3. Tulis modul keuangan dan komisi — dua bidang bisnis terakhir yang belum ada.

Lisensi

AGPL-3.0. AGPL berbeda dari GPL dalam satu hal yang penting untuk sebuah CRM: jika Anda menjalankan salinan yang TELAH DIMODIFIKASI dan membiarkan orang lain memakainya lewat jaringan, Anda wajib memberi mereka kode sumber versi Anda. Menjalankannya tanpa modifikasi, atau hanya untuk diri sendiri, tidak menimbulkan kewajiban apa pun.

Jika itu tidak cocok — misalnya Anda ingin membangun di atas ChuhaiCRM tanpa mempublikasikan perubahan — lisensi komersial dapat diatur. Silakan buka issue.