Dokumentasi

Pasang dan pakai Suka Duit

Panduan lengkap dari nol: memilih cara pemasangan, menjalankan installer, sampai memakai setiap fiturnya.

Instalasi & Setup

Instalasi & Setup

Ada tiga cara memasang: shared hosting (paling gampang), VPS dengan Docker (paling rapi), atau VPS native (paling ramping). Pilih salah satu, karena langkah awalnya sama untuk ketiganya.

PHP 8.2+dengan ekstensi intl, mbstring, mysqli
MySQL 5.7+ / MariaDB 10.3+hampir semua paket hosting sudah termasuk
Folder writable/ yang bisa ditulisbuat session, cache, dan log
Gak perlu SSH, gak perlu import .sql. Ketiga cara bermuara ke halaman /install yang sama. Installer memeriksa server, membuat tabelnya sendiri, menulis .env, lalu menutup diri sendiri setelah selesai. Kamu cuma perlu isi form di browser.

Shared Hosting / cPanel

Cocok kalau kamu sudah punya paket hosting. Tanpa SSH dan tanpa baris perintah: semuanya dari browser dan File Manager.

Thumbnail video Cara Installasi Suka Duit di Shared Hosting cPanel YouTubeCara Installasi Suka Duit di Shared Hosting (cPanel)Video panduan step-by-step cara install Suka Duit di Shared Hosting (cPanel).

Taruh file di server (atau biarkan Docker yang mengambil)

Struktur folder aplikasi memisahkan kode dari area publik. Yang boleh diakses browser cuma isi public/. Sisanya (app/, system/, writable/) harus berada di luar jangkauan langsung.

Struktur folder
suka-duit/
├── app/          ← kode aplikasi (jangan diekspos)
├── public/       ← document root mengarah ke SINI
│   └── index.php
├── system/       ← framework CodeIgniter
├── writable/     ← session, cache, log (harus bisa ditulis)
└── .env          ← dibuat otomatis oleh installer
Kalau hosting kamu tidak mengizinkan ubah document root, pindahkan isi folder public/ ke folder utama, lalu sesuaikan satu baris require di index.php. Langkah detailnya ada di Masalah umum: Hosting tidak bisa mengubah document root.

Unggah lewat File Manager

Masuk cPanel → File Manager → buka public_html (atau www). Unggah arsip aplikasi lalu Extract di sana.

Kalau hosting kamu menyediakan fitur pemilih document root, arahkan domain ke folder public/. Kalau tidak, lihat catatan di Langkah 1.

Pastikan folder writable/ punya izin tulis (755, atau 775 kalau hostingnya ketat). File .env di root juga perlu bisa ditulis installer.

Buat database & user MySQL

Di cPanel → MySQL Databases, buat satu database baru, lalu buat user MySQL dan berikan user itu akses penuh ke database tersebut.

Catat tiga nilai ini untuk nanti dimasukkan di halaman instalasi: nama database, username, dan password.

Jangan pakai user root hosting. Bikin user khusus per aplikasi supaya risikonya terbatas.
Installer juga bisa membuat database sendiri kalau user MySQL kamu punya izin. Tapi kalau hosting membatasi ini, buat manual dulu seperti di atas.

VPS dengan Docker Compose

Satu perintah untuk menyalakan Nginx, PHP-FPM, MySQL, dan phpMyAdmin sekaligus. Cara ini TIDAK memakai halaman /install: kredensial database ditanam saat container dibuat.

Masuk ke VPS & siapkan file

Setelah SSH masuk ke VPS, letakkan folder aplikasi di direktori kerja (misalnya /var/www/suka-duit). Pastikan Docker dan Docker Compose v2 sudah terpasang.

Cek prasyarat
docker --version
docker compose version
docker info
Kalau docker info gagal, daemon-nya belum jalan: jalankan sudo systemctl start docker (atau buka Docker Desktop kalau kamu di komputer sendiri).

Isi .env wajib sebelum nyala

Docker tidak punya kesempatan menanyakan kredensial lewat browser, jadi isi .env dulu. Salin dari contoh yang tersedia, lalu ganti dua nilai placeholder-nya.

Membuat .env
cp .env.example .env

# wajib diganti. Pakai password acak, jangan yang gampang ditebak:
#   DB_PASSWORD
#   MYSQL_ROOT_PASSWORD
Semua service gagal start kalau dua variabel itu kosong. Ini disengaja, supaya tidak ada instalasi yang jalan dengan password default.
Di Docker, host database BUKAN localhost melainkan nama service-nya: mysql. docker-compose.yml sudah mengisi ini sendiri lewat environment php, jadi kamu tidak perlu mengubah baris DB_HOSTNAME.

Nyalakan stack

Ada dua pilihan: skrip setup yang sekaligus menunggu database sehat dan menjalankan migrasi, atau perintah compose manual.

Pilihan A: skrip setup (disarankan)
./setup.sh
Pilihan B, manual: docker compose up -d --build, lalu docker compose exec -T php php spark migrate. phpMyAdmin tersedia di 127.0.0.1:8586 (hanya dari mesin itu sendiri) untuk memeriksa isi database.

VPS Tanpa Docker (Native)

Kalau VPS kamu sudah menjalankan Nginx + PHP-FPM untuk situs lain, mode ini menghindari duplikasi container. Instalasinya memakai halaman /install seperti shared hosting.

Pasang PHP, Nginx, dan MySQL

Minimal PHP 8.2 dengan ekstensi intl, mbstring, dan mysqli. Contoh perintah untuk Debian/Ubuntu:

Paket Debian / Ubuntu
sudo apt update
sudo apt install nginx php8.2-fpm php8.2-intl \
  php8.2-mbstring php8.2-mysql mysql-server
Versi paket bisa berbeda tergantung distro. Yang penting PHP ≥ 8.2 dan tiga ekstensi itu terpasang.

Arahkan document root ke public/

Ini langkah keamanan paling penting di mode native: web server hanya boleh menyentuh folder public/. Semua permintaan diarahkan ke index.php di dalamnya.

/etc/nginx/sites-available/suka-duit
server {
    listen 80;
    server_name keuangan.domainku.com;
    root /var/www/suka-duit/public;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php?/$request_uri;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* { deny all; }
}

Atur izin tulis & buka /install

Web server perlu bisa menulis di writable/ dan membuat .env. Setelah itu, sisa langkahnya sama seperti di browser.

Izin folder
sudo chown -R www-data:www-data /var/www/suka-duit
sudo chmod -R 775 /var/www/suka-duit/writable
Buka https://domainmu.com/install. Formnya sama seperti cara shared hosting, lengkap dengan pemeriksaan server otomatis.

Halaman /install, langkah demi langkah

Halaman ini dipakai oleh cara shared hosting dan VPS native. Isinya lima langkah, semuanya di browser.

Pemeriksaan server

Installer memeriksa versi PHP, ketersediaan ekstensi intl/mbstring/mysqli, izin tulis folder writable/, dan apakah .env bisa dibuat. Semua harus centang hijau sebelum kamu bisa lanjut.

Pemeriksaan server pada halaman instalasi Suka Duit, semua syarat tercentang

Semua syarat centang hijau. Kalau ada yang merah, penyebabnya tertulis di baris itu sendiri.

Identitas aplikasi

Nama dan tagline yang akan tampil di sidebar serta judul halaman. Isi apa saja. Keduanya bisa diganti kapan pun setelah aplikasi jalan, tanpa menyentuh file.

Form identitas aplikasi: nama dan tagline

Koneksi database

Masukkan host, port, nama database, username, dan password. Di shared hosting maupun VPS native, host-nya biasanya localhost. Kalau ragu, cek panduan penyedia hosting kamu.

Tombol Uji Koneksi & Deteksi Data Database tidak hanya mengetes: aplikasi juga melaporkan apakah databasenya masih kosong atau sudah berisi instalasi lama.
Form koneksi database dengan host localhost dan port 3306

Hasil uji koneksi

Kalau kredensialnya benar, muncul kotak hijau. Pesannya sekaligus memberi tahu kondisi database: kosong dan siap dipasang baru, atau sudah ada data lama.

Kotak status hijau: koneksi berhasil dan database siap dipasang baru

Statusnya jelas di kartu yang sama, tanpa perlu membuka phpMyAdmin untuk tahu database-nya kosong.

Akun administrator

Akun pertama ini otomatis berperan sebagai administrator, jadi hanya dia yang bisa mengelola user lain dan mengubah identitas aplikasi.

Simpan email dan password ini baik-baik. Aplikasi tidak mengirim email, jadi tidak ada fitur lupa password. Kalau sampai lupa, reset-nya lewat database, caranya ada di Masalah umum.
Form pembuatan akun administrator dengan nama, email, dan password

Pilih data awal

Dua pilihan sederhana: mulai dengan dompet kosong, atau isi data contoh supaya dashboard langsung terlihat hidup dan gampang dipelajari.

  • Mulai bersih: dompet kosong, tanpa transaksi contoh.
  • Isi data contoh: 6 transaksi dan 3 budget contoh, supaya dashboard langsung ada isinya.
Dua pilihan data awal: mulai bersih atau isi data contoh

Klik Install Sekarang

Installer membuat tabel, menulis .env, menandai instalasi selesai, lalu langsung mengarahkan kamu ke dashboard dalam keadaan sudah login.

Setelah ini halaman /install menutup dirinya sendiri. Kalau dibuka lagi, kamu cuma akan dilempar ke dashboard.

Tombol Install Sekarang

Penanda instalasi ditulis ke writable/installed.lock.

Dashboard siap pakai

Kalau kamu memilih data contoh, dashboard sudah terisi: saldo, arus kas bulan berjalan, grafik harian, dan peringatan budget. Semua angka di layar ini berasal dari database yang baru saja kamu buat.

Dashboard Suka Duit tepat setelah instalasi dengan data contoh terisi

Instalasi selesai tanpa satu pun langkah baris perintah.

Pemakaian

Cara memakai setiap fitur

Urutannya mengikuti alur pemakaian sehari-hari: masuk, melihat dashboard, mencatat transaksi, lalu mengatur kategori, laporan, dan dompet keluarga. Tangkapan layar di bagian ini punya dua versi. Yang tampil menyesuaikan tema halaman yang sedang kamu pakai.

Masuk & Daftar

/login · /register

Halaman masuk dan pendaftaran akun mandiri. Administrator bisa menutup pendaftaran publik kalau aplikasinya hanya untuk keluarga atau tim tertutup. Setelah ditutup, akun baru cuma bisa dibuat admin lewat Settings.

  • Buat akun lewat /register, atau masuk dengan akun yang sudah ada.
  • Punya kode invite dompet? Kode itu dimasukkan di halaman dompet, bukan di halaman daftar.
  • Pendaftaran publik bisa dinyalakan/dimatikan di Settings → Pengguna.
Halaman masuk Suka Duit

Dashboard

/dashboard

Ringkasan satu layar: total saldo dompet aktif, arus kas bulan berjalan, komposisi pemasukan dan pengeluaran per kategori, grafik harian, plus peringatan budget yang hampir habis.

  • Ganti bulan lewat pemilih bulan untuk melihat periode lain.
  • Klik ikon mata untuk menyembunyikan saldo saat layar kamu terlihat orang lain.
  • Klik baris budget yang berperingatan untuk langsung masuk ke kategori itu.
  • Tombol Lihat Semua Transaksi pindah ke daftar lengkap.
Angka kartu Pemasukan/Pengeluaran bisa diklik untuk melihat rincian per kategori bulan tersebut.
Dashboard Suka Duit dengan saldo, donut chart kategori, dan grafik harian

Transaksi

/transactions

Riwayat lengkap dikelompokkan per tanggal dengan total harian. Ada pencarian bebas, filter jenis, dan filter kategori untuk menelusuri catatan lama.

  • Tambah transaksi dari tombol Tambah Transaksi, lalu pilih jenisnya: Pengeluaran, Pemasukan, atau Transfer antar dompet.
  • Isi nominal, kategori, tanggal, dan catatan opsional. Dompet tujuan ikut terpilih saat transfer.
  • Hapus transaksi dari menu di barisnya; saldo dompet ikut menyesuaikan otomatis.
  • Cari transaksi dengan kata kunci apa pun: catatan, kategori, nama dompet, nominal, bahkan tanggal.
Transaksi transfer dicatat sebagai satu pasangan keluar-masuk sehingga tidak dobel di laporan.
Daftar transaksi Suka Duit dengan pencarian dan pengelompokan tanggal

Form Tambah Transaksi

modal di /transactions

Satu formulir untuk tiga jenis transaksi. Jenis menentukan kategori dan kolom yang muncul, jadi kamu tidak perlu memilih dari daftar yang tidak relevan.

  • Pengeluaran dan Pemasukan memakai kategori sesuai jenisnya.
  • Transfer memilih dompet asal dan tujuan, tanpa kategori.
  • Tanggalnya otomatis hari ini, ubah kalau mencatat transaksi lama.
Form tambah transaksi Suka Duit

Kategori & Budget

/categories · /category/{id}

Kelola pos pemasukan dan pengeluaran dalam dua kolom terpisah. Setiap kategori bisa diberi ikon dan warna sendiri supaya gampang dikenali sekilas.

  • Tambah kategori baru dengan tombol Tambah, lalu pilih tipe, nama, ikon, dan warnanya.
  • Buka satu kategori untuk mengatur budget bulanan dan melihat riwayat transaksinya.
  • Progres budget muncul di kartu kategori. Begitu mendekati batas, dashboard ikut memberi peringatan.
Budget diset per bulan, jadi kategori yang cuma sesekali dipakai tidak perlu diisi semuanya.
Halaman kategori Suka Duit dengan kolom pengeluaran dan pemasukan

Detail Kategori & Budget

/category/{id}

Halaman satu kategori: total pengeluaran, jumlah transaksi, pengaturan budget bulan berjalan, dan riwayat transaksi kategori itu.

  • Isi nominal budget lalu klik Set untuk menyimpan batas bulan ini.
  • Progress bar menunjukkan persentase terpakai dan sisa budget.
  • Edit nama, ikon, warna, atau hapus kategorinya dari tombol di pojok kartu.
Detail kategori Groceries dengan budget dan riwayat transaksi

Laporan

/report

Komposisi pengeluaran per kategori untuk bulan yang dipilih, lengkap dengan persentase dan rincian transaksinya. Berguna saat ingin tahu ke mana uang sebenarnya pergi.

  • Pilih bulan dan tahun di bagian atas untuk berpindah periode.
  • Baca persentase tiap kategori pada donut chart dan daftar di sampingnya.
  • Klik kategori untuk melihat transaksi apa saja yang membentuk angkanya.
Laporan membaca data yang sama dengan dashboard. Tidak ada proses ekspor terpisah yang perlu dijalankan.
Laporan pengeluaran bulanan Suka Duit

Multi-Dompet & Anggota

/settings/wallets

Kelola banyak dompet sekaligus: pribadi, keluarga, atau bisnis. Setiap dompet punya anggota dan perannya sendiri, jadi catatan bisa dipisah rapi.

  • Buat dompet baru dengan nama, mata uang, saldo awal opsional, dan peran default untuk undangan.
  • Bagikan kode invite atau tautan undangan supaya orang lain bisa ikut mencatat.
  • Buka detail dompet untuk melihat daftar anggota, mengganti peran, atau mengeluarkan anggota.
Default role invite menentukan hak anggota baru: Editor bisa mencatat transaksi, Viewer hanya melihat.
Daftar dompet Suka Duit

Detail Dompet & Invite

/settings/wallets/detail

Kartu dompet menampilkan saldo total, kode invite, tautan undangan, dan daftar anggotanya beserta peran masing-masing.

  • Salin kode invite atau tautan undangan untuk dibagikan lewat WhatsApp.
  • Regenerate kode kalau kode lama sudah menyebar terlalu luas.
  • Ubah peran anggota atau keluarkan dari dompet lewat daftar Anggota Wallet.
Detail dompet dengan kode invite, tautan undangan, dan daftar anggota

Pusat Pengaturan

/settings

Semua pengaturan dikumpulkan di satu halaman berkartu: profil, dompet, keamanan, tampilan, backup, AI/MCP, pengguna, identitas aplikasi, dan info versi.

  • Kartu Pengguna dan Identitas Aplikasi hanya muncul untuk administrator.
  • Beberapa pengaturan bersifat per-akun (profil, keamanan, tampilan), sebagian per-aplikasi (identitas, pengguna).
  • Tombol keluar ada di kartu profil paling atas.
Halaman pusat pengaturan Suka Duit

Profil & Keamanan

/settings/account · /settings/security

Ubah nama tampilan dan alamat email, atau ganti password dengan memverifikasi password lama terlebih dahulu.

  • Ganti nama atau email di kartu Profil Akun.
  • Ganti password di kartu Keamanan. Password lama diminta sebagai konfirmasi.
  • Hapus akun permanen lewat kartu yang sama, dengan password sebagai konfirmasi.
Email di sini hanya identitas login. Aplikasi tidak mengirim email apa pun, termasuk notifikasi dan reset password.
Pengaturan profil akun Suka Duit

Tampilan

/settings/appearance

Atur mode terang/gelap, tema warna, jenis font, dan ukuran teks. Ada pratinjau hidup di atas formulir supaya perubahan langsung terlihat sebelum disimpan.

  • Pilih Mode Terang atau Mode Gelap. Pilihan ini juga tersimpan per akun.
  • Ubah tema warna untuk mengganti warna aksen di seluruh aplikasi.
  • Pilih font dan ukuran teks sesuai kenyamanan; ada tombol Reset ke Default kalau keliru.
Toggle bulan/matahari di bilah atas adalah jalan cepat untuk mode gelap tanpa membuka halaman ini.
Pengaturan tampilan Suka Duit dengan pratinjau hidup

Backup & Restore

/settings/backup

Unduh salinan data akun dalam format JSON, lalu pulihkan lagi dari file backup kapan pun dibutuhkan.

  • Pilih cakupan backup: semua data, atau hanya dompet, transaksi, kategori, dan konfigurasi MCP tertentu.
  • Unduh backup sebelum melakukan perubahan besar, karena file JSON bisa di-restore kapan saja.
Halaman backup dan restore Suka Duit

AI Agent lewat MCP

/settings/mcp

Suka Duit punya MCP server bawaan, jadi AI agent seperti Claude Desktop atau Hermes bisa membaca dan mencatat keuangan langsung dari jendela chat.

  • Klik Bikin API Key untuk membuat token. Tokennya cuma ditampilkan sekali, jadi salin saat itu juga.
  • Berikan URL dan header Authorization ke AI agent, atau salin Prompt Integrasi Otomatis dan tempelkan ke agent-nya.
  • Lihat isi prompt kalau ingin memeriksa apa yang diminta ke agent sebelum dijalankan.
  • Cabut token kapan saja dari halaman ini kalau aksesnya tidak dipakai lagi.
Token hanya punya akses lewat MCP, terpisah dari sesi login browser. Mencabutnya tidak memengaruhi aksesmu sendiri.
Halaman pengaturan MCP Server Suka Duit

Kelola Pengguna

/settings/users

Halaman khusus administrator: lihat total pengguna, tambah akun baru, atur peran, dan nyalakan atau matikan pendaftaran publik.

  • Tambah pengguna dengan nama, email, dan password sementara.
  • Ubah peran antara User Standar dan Administrator, atau ganti password mereka.
  • Matikan Pendaftaran Pengguna Publik kalau aplikasinya hanya untuk lingkungan tertutup.
Administrator bisa melihat pengaturan identitas aplikasi; user standar tidak melihat kartu itu sama sekali.
Halaman kelola pengguna Suka Duit

Identitas Aplikasi

/settings/identity

Ganti nama dan tagline aplikasi langsung dari dalam aplikasi. Perubahan berlaku di sidebar, judul halaman, sampai nama aplikasi pada manifest PWA.

  • Isi nama aplikasi dan tagline, lalu simpan.
  • Pratinjau sidebar di sampingnya menunjukkan hasilnya sebelum disimpan.
  • Untuk mengubah ikon aplikasi, ganti berkasnya di folder public/ tempat kamu memasang aplikasi.
Pengaturan identitas aplikasi Suka Duit

Tampilan Mobile & PWA

semua halaman

Seluruh antarmuka dirancang mobile-first. Sidebar berubah jadi laci, tombol Tambah Transaksi menempel di bagian bawah, dan aplikasi bisa dipasang ke layar utama.

  • Buka aplikasi di browser ponsel, lalu pilih Tambahkan ke Layar Utama.
  • Data yang diisi di ponsel dan komputer memakai database yang sama. Tidak ada sinkronisasi terpisah.
  • Mode gelap ikut pilihan yang tersimpan di akunmu, jadi konsisten di semua perangkat.
Dashboard Suka Duit di layar ponsel
Bantuan

Kalau ada yang tidak jalan

Masalah yang paling sering muncul saat pemasangan, beserta jalan keluarnya.

Buka writable/logs/log-YYYY-MM-DD.log. Pesan error sebenarnya ada di sana.

Pastikan folder writable/ bisa ditulis (755, atau 775 kalau masih gagal).

Menyetel izin folder
chmod -R 755 writable/

Folder utama aplikasi harus bisa ditulis web server. Kalau hosting mengunci folder, buat file .env kosong lebih dulu, lalu beri izin tulis 644.

Pindahkan semua isi folder public/ ke folder utama, lalu edit index.php yang sudah dipindah pada baris require-nya.

public/index.php
require FCPATH . '../app/Config/Paths.php';
// ubah menjadi:
require FCPATH . './app/Config/Paths.php';

Periksa ulang host, nama database, username, dan password di panel hosting kamu.

Pastikan user MySQL sudah diberi akses ke database itu. Beberapa panel mengharuskan user ditambahkan ke database secara terpisah.

Pastikan ekstensi mysqli aktif. Di Docker, host-nya adalah mysql, bukan localhost.

Matikan pemaksaan HTTPS di .env, lalu pastikan sertifikat SSL-nya memang valid.

.env
app.forceGlobalSecureRequests = false

Aplikasi ini tidak mengirim email, jadi tidak ada fitur lupa password. Reset dilakukan dari database: buka tabel users lewat phpMyAdmin, tempel hash password sementara di kolom password, lalu login dan segera ganti password dari Settings.

Penting: pada kolom Function di phpMyAdmin, biarkan kosong. Kalau diisi, nilainya akan diubah lagi oleh fungsi tersebut.

SQL
UPDATE users
SET password = '<hash_password_sementara>'
WHERE email = 'emailkamu@domain.com';

Instalasi dikenali dari dua hal: berkas penanda writable/installed.lock sebagai cache cepat, dan tabel users di database sebagai penentu utama. Kalau datanya masih ada, aplikasi tetap mengenali dirinya sebagai terinstall meski penandanya hilang.

Untuk menghubungkan ulang ke database lama: hapus .env (dan installed.lock kalau ada), buka /install, masukkan kredensial database lama, lalu pilih Gunakan Data yang Ada (Rekomendasi).

Untuk memulai dari nol: hapus .env dan installed.lock, buka /install, pakai kredensial yang sama, lalu pilih Pasang Baru (Hapus Data Lama).

Selesai, selamat mencatat

Kalau ada langkah yang kurang jelas atau lingkunganmu berbeda dari yang dijelaskan di sini, tanyakan langsung lewat WhatsApp. Sebutkan cara pemasangan yang kamu pakai supaya jawabannya cepat.

Chat WhatsApp