INKRAH Web Design Open Source Project
English Indonesia

Panduan Lengkap INKRAH News Portal CMS

Dokumen ini disusun untuk pengguna yang belum tentu bisa coding — cukup bisa masuk ke cPanel dan File Manager. Semua langkah ditulis rinci, tahap demi tahap.

PHP + SQLite Tanpa MySQL Open Source API-First

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.

Kenapa SQLite, bukan MySQL? Supaya bisa jalan di hosting sekecil apa pun tanpa perlu setup database server terpisah, dan supaya backup semudah men-download satu file. Sistem ini tetap dirancang sanggup menampung ratusan ribu artikel.

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.

Tip Baru setelah 2 langkah di atas selesai, jalankan installer (bagian 3.3). Saat mengisi formulir, isi Site URL dengan alamat lengkap termasuk subfolder-nya, misal 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

TindakanCaranya
Aktifkan HTTPS (SSL)Di cPanel, cari SSL/TLS Status atau Let's Encrypt, aktifkan untuk domain Anda (biasanya gratis).
Password admin yang kuatJangan pakai kata umum. Minimal 12 karakter, campuran huruf besar-kecil-angka-simbol.
Hapus file migrasi setelah dipakaiFile seperti scripts/migrate-catchup.php hanya untuk dipakai sekali — setelah selesai, hapus lewat File Manager.
Jangan bagikan akun Super AdminAkun 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:

  1. Di File Manager, klik kanan folder databaseRename. Ganti dengan nama unik, misal db-x7kQ9secret (huruf dan angka saja, hindari spasi).
  2. 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');
  3. 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.

Jangan Lakukan Ini Jangan pernah memasang tool database pihak ketiga (seperti Adminer/phpLiteAdmin) di server dan membiarkannya menyala setelah selesai dipakai — siapa pun yang menemukan alamatnya bisa membaca seluruh data Anda. CMS ini sudah punya Database Browser bawaan (menu Database, khusus Super Admin) yang lebih aman karena wajib login.

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.

Cara Memulihkan (Restore) Kalau suatu saat perlu mengembalikan data, cukup upload file backup .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.

FolderIsinya
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.
Sebelum Edit Kode Selalu download/backup file yang mau diedit terlebih dahulu. Kalau memungkinkan, coba dulu di situs percobaan (bukan situs yang sedang dipakai publik) sebelum diterapkan ke situs utama.

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.

Tentang Peran (Role) Author dan Contributor tidak bisa langsung menerbitkan artikel — tulisan mereka otomatis masuk antrean tinjauan. Hanya Editor ke atas yang bisa menerbitkan langsung.

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

GejalaKemungkinan Penyebab & Solusi
Halaman blank / HTTP 500Cek versi PHP (harus 8.1+) di cPanel. Cek isi error_log di File Manager untuk pesan errornya persis.
Gambar tidak munculCek permission folder storage (harus 755/775) dan pastikan file benar-benar ter-upload.
Halaman kategori/menu tidak muncul kategorinyaKategori baru muncul di menu kalau sudah punya minimal 1 artikel published di dalamnya.
Link rusak setelah pindah folder/domainBuka menu Settings, pastikan "Site URL" sudah sesuai alamat yang sekarang dipakai.
Lupa password Super AdminPerlu 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), maupun storage — situs tidak akan berfungsi tanpa itu.
  • File-file bernama scripts/migrate-*.php hanya 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.