📖 Panduan Interaktif

Setup SID Owner Dashboard
Multi-Tenant

Panduan lengkap langkah demi langkah untuk menghubungkan dashboard owner ke 40 database SID perusahaan properti — tanpa mengubah sistem lama.

40
Perusahaan
19
Langkah Total
±2 jam
Setup Pertama
15 mnt
Per Domain Berikutnya
🗺️
Gambaran Sistem
Pahami dulu cara kerjanya sebelum mulai
ℹ️
Prinsip utama: Sistem SID lama tidak disentuh sama sekali. Dashboard hanya membaca data dari database lama melalui file API yang kita tambahkan.
# Alur Sistem

Database MySQL Lama        API Bridge PHP        Dashboard Owner
(masing-masing domain)      (folder owner-api)       (React / Vercel)

ptborneorp.com/db         owner-api/index.php  
aksisproperty.com/db      owner-api/index.php     1 Dashboard
bagasparadeso.com/db      owner-api/index.php     Multi-Tenant
... 37 domain lain        owner-api/index.php  
Sistem SID LamaDashboard Baru
✅ Tetap berjalan seperti biasa📊 Hanya bisa dilihat owner
✅ Tim input data seperti biasa✅ Owner approve/tolak pengajuan
✅ Database TIDAK diubah🔄 Data update otomatis 3 menit
✅ File lama TIDAK disentuh📱 Bisa dibuka dari HP manapun
  • Laptop atau PC — bukan HP untuk proses setup ini
  • Akses cPanel — srv85.niagahoster.com:2083
  • Node.js — akan diinstall di langkah 8 (gratis)
  • Akun Vercel — akan dibuat di langkah 11 (gratis)
  • Text editor — Notepad, VSCode, atau Notepad++
  • Spreadsheet — Excel atau Google Sheets untuk catat data
  • Waktu — 2-3 jam setup pertama, 15 menit per domain berikutnya
1️⃣
Fase 1 — Setup Domain Pertama
ptborneorp.com · Estimasi: 2-3 jam
1
Download & Rename Semua File

Download 4 file berikut dari chat ini ke laptop kamu. Buat folder khusus, misalnya D:\SID-Dashboard\

File yang DidownloadRename JadiKeterangan
owner-api-index.phpindex.phpAPI utama — sama untuk semua domain
owner-api-config.phpconfig.phpConfig DB — beda tiap domain
owner-api-htaccess.txt.htaccessKeamanan — sama untuk semua domain
sid-multitenant-dashboard.jsxApp.jsxDashboard React (nanti dipakai di Fase 2)
⚠️
File .htaccess dimulai dengan titik. Di Windows, nama file seperti ini mungkin terlihat aneh tapi itu normal. Pastikan tidak ada ekstensi tambahan seperti .htaccess.txt
2
Edit File config.php Sebelum Upload

Buka file config.php dengan Notepad atau VSCode. Ganti 4 baris ini:

// Ganti sesuai data ptborneorp.com
define('DB_NAME',   'u1376210_ptborneodb');
define('DB_USER',   'u1376210_brp_ro');   ← user yg akan dibuat
define('DB_PASS',   'isi_password_nanti'); ← isi setelah buat user
define('API_TOKEN', 'borneo-8f4a2b9c-1e7d-4f6a-9b3e-2c5d8a1f4e7b');

Cara buat TOKEN: Token adalah kata sandi rahasia API. Buat string acak yang panjang. Contoh mudah: gabungkan nama domain + angka acak + karakter unik.

⚠️
Catat semua data ini di spreadsheet Excel sekarang! Kamu akan butuh ini terus untuk 40 domain. Kolom yang perlu: No | Perusahaan | DB_NAME | DB_USER | DB_PASS | TOKEN | Status
3
Login ke cPanel
  • 1Buka browser di laptop
  • 2Ketik di address bar: srv85.niagahoster.com:2083
  • 3Masukkan username dan password cPanel
  • 4Setelah masuk, klik ikon File Manager
4
Buat Folder owner-api di ptborneorp.com
  • 1Di panel kiri File Manager, klik folder ptborneorp.com
  • 2Pastikan address bar menunjukkan: /home/xxxxx/ptborneorp.com
  • 3Lihat daftar file di kanan — ada index.php lama, dashboard.php, dll
  • 4Klik tombol "+ Folder" di toolbar atas
  • 5Isi nama folder: owner-api
  • 6Klik "Create New Folder"
🚫
JANGAN klik, edit, atau hapus file index.php lama atau file lain yang sudah ada. Hanya buat folder baru!
Nama folder harus persis owner-api dengan tanda minus, bukan underscore owner_api atau tanpa pemisah ownerapi
5
Upload 3 File ke Folder owner-api
  • 1Klik folder owner-api yang baru dibuat untuk masuk ke dalamnya
  • 2Pastikan address bar: /home/xxxxx/ptborneorp.com/owner-api
  • 3Klik tombol "Upload" di toolbar atas
  • 4Upload 3 file ini: index.php, config.php, .htaccess
  • 5Tunggu sampai progress bar 100%
  • 6Klik "Go Back to /owner-api"
  • 7Pastikan 3 file sudah terlihat di daftar
Setelah upload, struktur folder yang benar:
ptborneorp.com/owner-api/index.php
ptborneorp.com/owner-api/config.php
ptborneorp.com/owner-api/.htaccess
6
Buat MySQL User Read-Only

Langkah 6A — Buat User Baru:

  • 1Klik logo cPanel di pojok kiri atas untuk kembali ke menu utama
  • 2Cari dan klik "MySQL Databases"
  • 3Scroll ke bagian "MySQL Users""Add New User"
  • 4Isi username: brp_ro (nama lengkap jadi: u1376210_brp_ro)
  • 5Klik "Password Generator" → copy password yang dibuat → simpan di spreadsheet
  • 6Klik "Create User"

Langkah 6B — Tambahkan ke Database:

  • 1Scroll ke bagian "Add User To Database"
  • 2User: pilih u1376210_brp_ro
  • 3Database: pilih u1376210_ptborneodb
  • 4Klik "Add"

Langkah 6C — Set Privileges (PENTING!):

  • 1Di halaman "Manage User Privileges" yang muncul
  • 2CENTANG HANYA: SELECT
  • 3Pastikan INSERT, UPDATE, DELETE, DROP, dll TIDAK dicentang
  • 4Klik "Make Changes"
🚫
Jangan centang privilege lain selain SELECT! User ini hanya boleh membaca data, tidak boleh mengubah atau menghapus apapun.

Langkah 6D — Update Password di config.php:

  • 1Kembali ke File Manager → masuk ke folder owner-api
  • 2Klik kanan config.php → pilih "Edit"
  • 3Ganti baris DB_PASS dengan password yang dibuat di langkah 6A
  • 4Klik "Save Changes"
7
Test API — Langkah Paling Penting!

Buka tab browser baru dan ketik URL ini (ganti TOKEN dengan milikmu):

https://ptborneorp.com/owner-api/index.php?action=ping&token=TOKEN_KAMU

Hasil yang BENAR — browser menampilkan JSON seperti ini:

{
  "success": true,
  "data": {
    "status": "OK",
    "database": "u1376210_ptborneodb",
    "timestamp": "2026-06-09 10:30:00"
  },
  "message": "Koneksi berhasil"
}

Kalau muncul JSON seperti itu → BERHASIL ✅ Lanjut ke Fase 2

Kalau muncul error → lihat tabel ini:

Pesan ErrorSolusi
Koneksi database gagalCek DB_NAME, DB_USER, DB_PASS di config.php. Pastikan user sudah ditambahkan ke database.
Akses ditolak / 401Token di URL harus sama persis dengan API_TOKEN di config.php. Tidak boleh ada spasi.
404 Not FoundCek nama folder harus owner-api dan file index.php ada di dalamnya.
Halaman kosongBuka index.php di File Manager, hapus tanda // dari 2 baris debug, refresh untuk lihat error.
CORS errorPastikan .htaccess sudah terupload dengan isi yang benar.

Setelah ping OK, test juga data nyata:

# Test semua data sekaligus
https://ptborneorp.com/owner-api/index.php?action=all&token=TOKEN

# Test per bagian
https://ptborneorp.com/owner-api/index.php?action=overview&token=TOKEN
https://ptborneorp.com/owner-api/index.php?action=proyek&token=TOKEN
https://ptborneorp.com/owner-api/index.php?action=approval&token=TOKEN
Catat di spreadsheet: status test = OK atau GAGAL, beserta tanggal setup.
2️⃣
Fase 2 — Deploy Dashboard React
Install Node.js, buat project, deploy ke Vercel · Estimasi: 1-2 jam
8
Install Node.js di Laptop
  • 1Buka browser, ketik: nodejs.org
  • 2Klik tombol besar "LTS" (bukan Current)
  • 3Download file installer (.msi untuk Windows)
  • 4Jalankan installer — klik Next terus sampai selesai
  • 5Restart laptop setelah install

Cara cek berhasil:

# Buka Command Prompt (Win+R → ketik cmd → Enter)
node --version
# Harus muncul: v18.x.x atau v20.x.x

npm --version
# Harus muncul angka versi
9
Buat Project React & Masukkan Dashboard

Buka Command Prompt (Win+R → ketik cmd → Enter), lalu ketik perintah ini satu per satu:

# 1. Pindah ke Desktop
cd Desktop

# 2. Buat project React baru
npm create vite@latest sid-dashboard -- --template react
# Ketik Y kalau ada pertanyaan, tekan Enter

# 3. Masuk ke folder project
cd sid-dashboard

# 4. Install dependencies
npm install
npm install recharts

# 5. Tunggu sampai selesai (2-5 menit)

Setelah selesai, masukkan file dashboard:

  • 1Buka File Explorer → Desktop → sid-dashboard → src
  • 2Hapus file App.jsx yang ada
  • 3Copy file sid-multitenant-dashboard.jsx ke folder src
  • 4Rename file itu menjadi App.jsx
10
Update Token & Sambungkan ke API Real

Buka App.jsx dengan VSCode atau Notepad. Cari bagian const TENANTS = [ dan tambahkan apiUrl dan token:

{
  id: "borneo",
  nama: "PT Borneo Real Properti",
  domain: "ptborneorp.com",
  apiUrl: "https://ptborneorp.com/owner-api/index.php",  ← tambah
  token: "borneo-8f4a2b9c-1e7d-4f6a-9b3e-2c5d8a1f4e7b",  ← tambah
  logo: "🏢",
  warna: "#1d4ed8"
},

Lalu cari fungsi loadData di dalam komponen CompanyDashboard dan ganti isinya:

// HAPUS baris mock data lama, GANTI dengan ini:
try {
  const res = await fetch(
    tenant.apiUrl + '?action=all',
    { headers: { 'Authorization': `Bearer ${tenant.token}` } }
  );
  const json = await res.json();
  if (!json.success) throw new Error(json.error);
  setData(json.data);
  setApprovs(json.data.approvals || []);
  setLastUpdate(json.data.lastUpdate || '');
} catch(err) {
  // Fallback ke mock data kalau API belum siap
  const mock = generateMockData(tenant.id);
  setData(mock);
  setApprovs(mock.approvals);
  setLastUpdate('Offline Mode');
} finally {
  setLoading(false);
}

Test di lokal dulu sebelum deploy:

# Di Command Prompt, di folder sid-dashboard
npm run dev

# Buka browser: http://localhost:5173
# Login: superadmin / SID@admin2026!
11
Deploy ke Vercel — Dapat URL Dashboard!

Langkah 11A — Buat Akun Vercel:

  • 1Buka: vercel.com
  • 2Klik "Sign Up"
  • 3Pilih "Continue with GitHub" (daftar GitHub dulu kalau belum punya — gratis)
  • 4Ikuti proses sampai akun aktif

Langkah 11B — Deploy Dashboard:

# Di Command Prompt, masih di folder sid-dashboard

# Install Vercel CLI
npm install -g vercel

# Login ke Vercel
vercel login
# Ikuti instruksi, login dengan email Vercel

# Deploy!
vercel
# Jawab semua pertanyaan dengan Enter atau Y
# Tunggu build selesai...
Setelah selesai akan muncul URL seperti:
https://sid-dashboard-abc123.vercel.app

URL ini yang dibagikan ke semua owner! Simpan baik-baik.

Untuk update dashboard di kemudian hari (setelah edit App.jsx):

vercel --prod
3️⃣
Fase 3 — Setup 39 Domain Sisanya
±15 menit per domain · Total ±10 jam
12
Langkah Setup Per Domain Baru

Untuk setiap domain baru, ulangi 4 langkah ini (±15 menit):

  • 1Copy file config.php yang sudah ada
  • 2Edit: ganti DB_NAME, DB_USER, DB_PASS, dan TOKEN dengan yang baru
  • 3TOKEN harus berbeda dari domain lain — buat yang unik baru
  • 4Catat semua di spreadsheet sebelum lanjut
  • 1File Manager → masuk ke domain baru → buat folder owner-api
  • 2Upload 3 file: index.php (sama), config.php (baru), .htaccess (sama)
  • 3MySQL Databases → buat user readonly baru → tambah ke database → SELECT only
  • 4Update DB_PASS di config.php
https://namadomainbaru.com/owner-api/index.php?action=ping&token=TOKEN_BARU
# Pastikan muncul {"success":true,...}
  • 1Buka App.jsx → cari domain baru di array TENANTS
  • 2Tambahkan apiUrl dan token yang baru
  • 3Di Command Prompt: vercel --prod
13
Jadwal & Prioritas 40 Domain
HariTargetDomain
Hari 1Fase 1 + 2ptborneorp.com + deploy dashboard
Hari 2-310 domainaksisproperty, arcadiatownhouse, arroyansistem, asdmandiri, bagasparadeso, barunia, borneobangunan, begawandevelopment, bintangtimurland, bumigroup
Hari 4-510 domainbuttama, citramaheragunawan, citrapropertindoraya, dagymoipropertindo, danitamajaya, davidproperti, devdigitascorp, dgreenproperty, djavinoproperti, fatihapropertindo
Hari 6-710 domainfatproperti, gemercikstarjaya, grahateknik, grandlotus, griyaasri, griyabatara, griyapraja, hamraberk, homelandindonesia, hometechindonesia
Hari 8-99 domain + Fase 4huniananakbangsa, hup-serang, ikonsid, kantorbsd, kinayami, lestarigemi, madanirealti, makayapro, margahyuregency + distribusi akses
Tidak perlu dikerjakan sekaligus. Bahkan 5 domain pertama yang selesai sudah langsung berguna bagi owner untuk pantau proyek utama mereka.
4️⃣
Fase 4 — Distribusi Akses ke Owner
Tambah akun & kirim ke masing-masing owner
14
Tambah Akun Owner di Dashboard

Buka App.jsx, cari bagian const USERS = [, tambahkan akun:

const USERS = [
  // Super admin — bisa lihat semua perusahaan
  { username:"superadmin",    password:"SID@admin2026!",
    nama:"Super Administrator", role:"superadmin", tenantId:null },

  // Owner per perusahaan
  { username:"owner.borneo",   password:"BRP@owner2026!",
    nama:"Jesika Wianda Putri", role:"owner", tenantId:"borneo" },

  { username:"owner.aksis",    password:"Aksis@owner2026!",
    nama:"Owner Aksis",       role:"owner", tenantId:"aksis" },

  // Tambah terus untuk 40 perusahaan...
];

Setelah selesai edit, deploy ulang:

vercel --prod
15
Kirim Akses ke Owner via WhatsApp

Template pesan WhatsApp untuk dikirim ke masing-masing owner:

Yth. Bapak/Ibu [Nama Owner],

Dashboard monitoring proyek Anda sudah siap.

🔗 *Link:* https://sid-dashboard-xxx.vercel.app
👤 *Username:* owner.namaanda
🔑 *Password:* [isi password]

*Fitur yang tersedia:*
✅ Pantau semua proyek real-time
✅ Lihat saldo rekening bank tiap proyek
✅ Monitor performa tim marketing
✅ Approve/tolak pengajuan langsung dari HP
✅ Data update otomatis setiap 3 menit

Bisa diakses dari HP, tablet, atau komputer kapan saja.

Salam,
[Nama Kamu]
🔧
Troubleshooting Lengkap
Solusi untuk setiap error yang mungkin muncul
ErrorPenyebabSolusi
Koneksi DB gagal DB_NAME/USER/PASS salah Cek config.php. Buka phpMyAdmin di cPanel untuk verifikasi nama DB yang benar.
401 Tidak diizinkan Token salah Copy-paste token langsung dari config.php ke URL. Jangan ketik manual.
404 Not Found Folder/file salah Cek nama folder owner-api dan pastikan index.php ada di dalamnya.
Halaman blank PHP error tersembunyi Hapus // dari 2 baris debug di index.php, refresh, baca pesan error.
Data kosong (0) Nama tabel berbeda Buka phpMyAdmin, lihat nama tabel yang ada. Hubungi developer untuk sesuaikan.
CORS error .htaccess tidak aktif Pastikan .htaccess terupload. Coba tambahkan header manual di index.php baris paling atas.
ErrorSolusi
npm: command not foundNode.js belum terinstall. Download dari nodejs.org, install, restart laptop.
npm install gagalCek koneksi internet. Coba: npm install --legacy-peer-deps
Login tidak bisa masukUsername & password di array USERS harus sama persis (huruf besar kecil diperhatikan).
Data tidak muncul (Offline Mode)API belum terpasang atau token salah. Dashboard otomatis pakai data demo.
Vercel deploy gagalJalankan npm run build dulu untuk cek error. Biasanya ada syntax error di App.jsx.
Checklist Lengkap
Klik setiap item setelah selesai dikerjakan
SID Owner Portal — Panduan Setup v1.0 · Juni 2026
← Kembali ke sidpro.top   Buka Dashboard →