1. Tentang CMS Ini
INKRAH News Portal CMS adalah sistem manajemen berita yang dibangun dari nol memakai PHP dan SQLite — tanpa MySQL, tanpa Node.js, tanpa framework eksternal. Satu database Anda hanyalah satu file (inkrah.sqlite), sehingga backup dan pemindahan situs jadi sangat sederhana: tinggal copy file-nya.
2. Daftar Fitur
Semua fitur di bawah ini sudah aktif dan bisa langsung dipakai setelah instalasi.
Manajemen Artikel
Draf → tinjauan editor → jadwal → terbit. Editor ala WordPress dengan tombol tebal/miring/judul/kutipan/gambar/tautan.
Kategori & Tag
Buat kategori sendiri, artikel otomatis muncul di menu navigasi dan halaman kategori.
Media Manager
Upload gambar (JPEG/PNG/WebP/GIF), otomatis divalidasi dan tersimpan aman.
Manajemen User & Peran (Role)
11 peran bawaan (Super Admin, Admin, Editor, Penulis, dll) dengan hak akses berbeda-beda.
Sistem Iklan Baris
Pasang iklan gambar atau Google AdSense, lacak klik & tayangan, beri akses statistik berpassword untuk pemilik iklan.
SEO Bawaan
Sitemap otomatis, RSS, data terstruktur (JSON-LD), canonical URL, Open Graph untuk pratinjau media sosial.
Pencarian Cepat
Pencarian teks penuh (full-text search) memakai SQLite FTS5 — hasil relevan meski artikel sudah ribuan.
REST API
Bisa dikonsumsi aplikasi mobile atau situs lain lewat /api/v1/ dengan token khusus.
Desain Responsif
Mode terang/gelap, animasi halus, tampil rapi di HP maupun desktop.
Database Browser Bawaan
Khusus Super Admin — lihat/edit data langsung dari admin, tanpa perlu tool pihak ketiga.
Pengaturan Situs
Ubah nama situs, tagline, zona waktu, dan URL langsung dari admin.
Log Audit
Setiap aksi penting (login, ubah data, hapus) tercatat otomatis.
3. Cara Instalasi
Panduan ini mengasumsikan Anda memakai hosting cPanel biasa. Anda hanya perlu File Manager — tidak perlu SSH atau command line.
3.1 Upload dan Extract File
Masuk ke cPanel → File Manager
Buka public_html (ini adalah folder utama situs Anda). Kalau Anda mau CMS ini jadi situs utama di domain Anda, upload langsung di sini. Kalau Anda mau CMS ini ada di alamat seperti namadomainanda.com/news, buat folder baru dulu bernama news, lalu masuk ke folder itu.
Upload file ZIP CMS
Klik tombol Upload di File Manager, pilih file ZIP proyek ini, tunggu sampai selesai ter-upload.
Extract ZIP-nya
Klik kanan file ZIP yang baru diupload → pilih Extract. Pastikan hasil extract-nya membuat file index.php langsung terlihat di folder tersebut (bukan tersembunyi satu folder lagi di dalamnya). Kalau ternyata ada folder pembungkus tambahan (misal inkrah-cms/index.php), pindahkan (Move) semua isi folder itu satu tingkat ke luar, lalu hapus folder pembungkus yang sudah kosong.
3.2 Atur Izin (Permission) Folder
Klik kanan folder database
Pilih Permissions (atau Change Permissions). Atur ke 755. Kalau nanti muncul error "tidak bisa menulis", coba naikkan ke 775.
Ulangi untuk folder storage
Sama seperti di atas: klik kanan → Permissions → 755 (atau 775 kalau perlu). Folder ini tempat gambar yang di-upload disimpan.
3.3 Jalankan Installer
Pastikan versi PHP sudah benar
Di cPanel, cari menu MultiPHP Manager atau Select PHP Version. Pilih domain/folder Anda, set versi PHP ke 8.1 atau lebih baru. Ini wajib — versi lebih lama akan menyebabkan error.
Buka installer lewat browser
Kunjungi namadomainanda.com/install/index.php (atau namadomainanda.com/news/install/index.php kalau dipasang di subfolder). Halaman akan menampilkan daftar pengecekan sistem — pastikan semuanya bertanda "OK" berwarna hijau.
Isi formulir instalasi
Masukkan nama situs, Site URL (alamat lengkap situs Anda, tanpa garis miring di akhir — misal https://namadomainanda.com/news), lalu buat username, email, dan password administrator pertama Anda. Gunakan password yang kuat (minimal 12 karakter, campuran huruf besar/kecil/angka).
Klik Install, lalu login
Setelah sukses, Anda akan diarahkan ke halaman login admin. Simpan username & password itu baik-baik — akun ini adalah Super Admin pertama dan otomatis terlindungi dari terhapus.
3.4 Kalau Ingin Dipasang di Subfolder (bukan domain utama)
Kalau CMS ini Anda taruh di alamat seperti namadomainanda.com/news (bukan di alamat utama domain), ada 1 file kecil yang perlu Anda buat manual sebelum menjalankan installer:
Buka folder core di File Manager
Klik tombol + File di pojok atas File Manager. Beri nama file: config.local.php. Pastikan file ini dibuat di dalam folder core, sejajar dengan file config.php yang sudah ada.
Edit file itu
Klik kanan file config.local.php yang baru dibuat → pilih Edit atau Code Editor. Hapus semua isi (kalau ada), lalu ketik/tempel persis seperti ini:
<?php
define('INKRAH_BASE_PATH', '/news');
define('INKRAH_APP_ENV', 'production');
Ganti /news dengan nama folder Anda sendiri kalau berbeda. Simpan file (tombol Save Changes).
Edit file .htaccess di folder utama
Klik kanan .htaccess (kalau tidak terlihat, aktifkan dulu opsi "Show Hidden Files" di pengaturan File Manager) → Edit. Cari baris # RewriteBase /news/, hapus tanda pagar # di depannya, dan sesuaikan /news/ dengan nama folder Anda. Simpan.
https://namadomainanda.com/news.
4. Mengamankan Website
CMS ini sudah dibuat dengan beberapa pengaman bawaan (hash password, proteksi CSRF, dsb), tapi ada beberapa hal yang Anda sendiri perlu lakukan.
4.1 Wajib Dilakukan
| Tindakan | Caranya |
|---|---|
| Aktifkan HTTPS (SSL) | Di cPanel, cari SSL/TLS Status atau Let's Encrypt, aktifkan untuk domain Anda (biasanya gratis). |
| Password admin yang kuat | Jangan pakai kata umum. Minimal 12 karakter, campuran huruf besar-kecil-angka-simbol. |
| Hapus file migrasi setelah dipakai | File seperti scripts/migrate-catchup.php hanya untuk dipakai sekali — setelah selesai, hapus lewat File Manager. |
| Jangan bagikan akun Super Admin | Akun ini punya akses penuh, termasuk ke Database Browser. Buat akun terpisah (role lebih rendah) untuk staf lain. |
4.2 Sangat Disarankan
Ganti nama folder database
Ini bikin file database Anda lebih sulit ditebak posisinya. Caranya:
- Di File Manager, klik kanan folder
database→ Rename. Ganti dengan nama unik, misaldb-x7kQ9secret(huruf dan angka saja, hindari spasi). - Buat/edit file
core/config.local.php(lihat bagian 3.4 cara buatnya), tambahkan baris ini di paling atas, sebelum baris lain:define('INKRAH_DB_DIR', 'db-x7kQ9secret'); - Simpan, lalu coba buka situs Anda — kalau masih normal, berarti berhasil.
Backup rutin
Lihat bagian 5 (Maintenance) di bawah untuk caranya.
Jangan edit langsung tanpa backup
Sebelum mengedit file apa pun lewat File Manager, download dulu salinannya ke komputer Anda sebagai cadangan.
5. Maintenance Rutin
5.1 Backup Database (lakukan berkala, misal tiap minggu)
Masuk File Manager
Buka folder database (atau nama barunya kalau sudah di-rename sesuai bagian 4.2).
Download file inkrah.sqlite
Klik kanan file itu → Download. Simpan di komputer Anda dengan nama yang jelas, misal backup-2026-08-20.sqlite.
Backup juga folder storage
Ini berisi semua gambar yang pernah di-upload. Pilih folder storage → klik kanan → Compress (jadi ZIP) → lalu download hasil ZIP-nya.
.sqlite itu ke folder database, timpa (overwrite) file yang ada di sana. Lakukan ini saat situs sedang sepi pengunjung.
5.2 Kalau Pencarian Terasa Tidak Akurat
Setelah banyak edit/hapus artikel manual lewat Database Browser, indeks pencarian kadang perlu di-refresh. Masuk ke menu Database (Super Admin), pilih tabel articles_fts, lalu di bagian "Raw SQL" jalankan:
DELETE FROM articles_fts;
Centang kotak konfirmasi, klik Run. Lalu jalankan query berikutnya (bisa dilihat di file scripts/migrate-catchup.php bagian rebuild index, atau minta bantuan developer kalau ragu).
5.3 Cek Log Error Berkala
Kalau ada bagian situs yang terasa aneh, buka cPanel → menu Errors (atau cari file error_log di File Manager pada folder situs Anda). Baris paling bawah biasanya menunjukkan penyebab masalah.
6. Pengembangan Lanjutan (Kalau Ingin Menambah Fitur)
Bagian ini untuk gambaran umum saja — menambah fitur baru tetap butuh seseorang yang mengerti PHP, atau bisa juga diminta bantuan AI/asisten coding.
| Folder | Isinya |
|---|---|
core/ | Logika utama sistem (database, autentikasi, dll) — jangan diedit sembarangan. |
admin/ | Semua halaman panel admin. |
public/ | Tampilan situs yang dilihat pengunjung, termasuk CSS dan gambar. |
api/ | Untuk aplikasi luar (mobile app, situs lain) mengambil data. |
database/ | File database dan struktur tabel. |
7. Panduan Pakai Fitur Sehari-hari
7.1 Menulis & Menerbitkan Artikel
Login
Buka namadomainanda.com/admin/login.php, masuk dengan akun Anda.
Klik menu Articles → + New article
Anda akan masuk ke halaman editor.
Isi judul dan isi artikel
Pakai tombol format di atas kotak teks untuk tebal/miring/judul bagian/kutipan/tautan/gambar. Gambar bisa dipilih dari Media Library lewat tombol "🖼 Image".
Pilih kategori & isi ringkasan (excerpt) di sidebar kanan
Sidebar ini bisa disembunyikan/ditampilkan lewat tombol ☰ di pojok kiri atas kalau layar terasa sempit.
Pilih status
Pilih Published kalau ingin langsung tayang (khusus role yang punya izin publish). Role lain otomatis masuk status "pending review" menunggu persetujuan editor.
Klik Save
Selesai — artikel akan muncul di homepage dan halaman kategorinya.
Menambah Kategori
Menu Categories di sidebar admin → isi nama kategori → klik Add category. Kategori otomatis muncul di menu navigasi situs (kalau sudah ada artikel di dalamnya).
7.2 Upload Gambar (Media Library)
Menu Media di sidebar admin → pilih file gambar (JPEG/PNG/WebP/GIF, maksimal 8MB) → isi teks alternatif (alt text, untuk aksesibilitas & SEO) → klik Upload. Gambar yang sudah diupload bisa dipakai berulang kali di artikel manapun lewat tombol "Choose from Media Library".
7.3 Menambah User & Mengatur Peran
Menu Users → isi form "Create user"
Isi nama, username, email, password, lalu centang peran (role) yang sesuai — misalnya "Author" untuk penulis biasa, "Editor" untuk yang boleh meninjau tulisan orang lain.
Mengubah peran user yang sudah ada
Klik Edit di samping nama user tersebut, centang/hapus centang peran, klik Save.
7.4 Memasang Iklan Baris
Siapkan gambar iklan
Upload gambar iklan Anda (misal ads1.png) ke folder public/assets/img/ lewat File Manager.
Menu Ads → buat iklan baru
Isi nama iklan, pilih tipe (Gambar atau Google AdSense), isi alamat gambar (misal /public/assets/img/ads1.png) dan alamat tujuan saat diklik (harus diawali https://).
Pilih posisi tampil (placement)
"Below article" = tampil di bawah setiap artikel. "Before footer" = tampil sebagai deretan iklan sebelum bagian footer.
(Opsional) Beri password statistik
Kalau iklan ini milik klien/mitra, isi "Owner stats password" — lalu bagikan link namadomainanda.com/ad-stats.php?id=NOMOR ke mereka supaya bisa memantau performa iklannya sendiri tanpa perlu login admin.
7.5 Mengatur Nama Situs, Tagline, Zona Waktu
Menu Settings di sidebar admin. Ubah field yang diinginkan, klik Save settings.
8. Troubleshooting Umum
| Gejala | Kemungkinan Penyebab & Solusi |
|---|---|
| Halaman blank / HTTP 500 | Cek versi PHP (harus 8.1+) di cPanel. Cek isi error_log di File Manager untuk pesan errornya persis. |
| Gambar tidak muncul | Cek permission folder storage (harus 755/775) dan pastikan file benar-benar ter-upload. |
| Halaman kategori/menu tidak muncul kategorinya | Kategori baru muncul di menu kalau sudah punya minimal 1 artikel published di dalamnya. |
| Link rusak setelah pindah folder/domain | Buka menu Settings, pastikan "Site URL" sudah sesuai alamat yang sekarang dipakai. |
| Lupa password Super Admin | Perlu bantuan lewat Database Browser (kalau masih ada akun lain dengan akses) atau reset manual lewat tabel users — sebaiknya minta bantuan developer untuk ini. |
9. Catatan Penting Lainnya
- Jangan pernah menghapus folder
core,database(atau nama barunya), maupunstorage— situs tidak akan berfungsi tanpa itu. - File-file bernama
scripts/migrate-*.phphanya untuk dipakai satu kali lalu wajib dihapus setelahnya, karena bisa diakses siapa saja yang tahu alamatnya kalau dibiarkan. - CMS ini adalah proyek open source — atribusi "INKRAH Web Design Open Source Project" di footer situs dan kode sumber sebaiknya tetap dipertahankan.
- Karena tidak memakai framework/CDN eksternal, situs ini tetap bisa jalan sepenuhnya offline di localhost — berguna untuk uji coba sebelum diterapkan ke situs live.
- Simpan dokumen ini (dan riwayat percakapan pengembangan CMS ini) sebagai referensi kalau suatu saat perlu bantuan developer lain melanjutkan proyek ini.