Lewati ke konten

Referensi Perintah Artisan CLI

Paket menyertakan kumpulan perintah Artisan CLI untuk administrasi, otomasi pemindaian, dan pemeliharaan server secara mandiri.


Wizard instalasi terpandu bilingual (Indonesia default / English via --lang=en): pilihan mode API-only (--api-only), tawaran dashboard Blade murni, cek kelengkapan lingkungan, tawaran migrasi langsung, dan saran langkah berikutnya beserta tautan dokumentasi.

Menginisialisasi paket, mempublikasikan konfigurasi, migrasi database, konfigurasi Nginx hardened WAF, serta menerapkan aturan Apache .htaccess Hardened di folder public/.

Terminal window
php artisan pasak:install [options]
  • Jika public/.htaccess belum ada: installer membuat berkas baru dengan rewrite standar Laravel + blok proteksi hardening.
  • Jika public/.htaccess sudah ada: installer membuat berkas backup otomatis (.htaccess.backup-YYYYMMDD_HHMMSS) dan menambahkan blok hardening keamanan di bagian bawah berkas tanpa merusak aturan kustom pengguna.
  • Jika sudah terpasang: installer mendeteksi signature hardening dan tidak menduplikasi aturan.

Mekanisme Penyematan Variabel .env & .env.example:

Bagian berjudul “Mekanisme Penyematan Variabel .env & .env.example:”
  • Installer secara otomatis memeriksa apakah blok konfigurasi PASAK_* sudah ada di .env dan .env.example.
  • Jika belum ada, installer menyematkan blok variabel lingkungan lengkap dengan komentar dokumentasi berbahasa Indonesia di akhir berkas.
  • Opsi --without-env dapat digunakan untuk melewati langkah ini jika Anda ingin mengonfigurasi variabel lingkungan secara manual.
  • --force: Menimpa seluruh berkas konfigurasi, migrasi, nginx.conf, dan public/.htaccess dengan template bawaan.
  • --lang=: Bahasa wizard (id | en).
  • --api-only: Jalan pintas — API ya, Web tidak (inti + keamanan saja, tanpa halaman/dashboard).
  • --without-api: Melewatkan pemasangan dukungan API.
  • --without-web: Melewatkan pemasangan dashboard web.
  • --with-dashboard / --with-plain / --with-blade: Dashboard Blade murni (semua aplikasi Laravel, tanpa dependensi frontend).
  • --without-nginx: Melewatkan publikasi berkas nginx.conf.
  • --without-htaccess: Melewatkan publikasi atau penambahan aturan pada public/.htaccess.
  • --with-htaccess: Memaksa pembaruan berkas public/.htaccess dengan aturan hardening keamanan.
  • --without-env: Melewatkan penyematan variabel konfigurasi ke berkas .env dan .env.example.

Memindai berkas log web server (Apache/Nginx) secara streaming, mendeteksi serangan yang ditolak di level web server, mengimpor ke tabel log keamanan, atau langsung memblokir IP penyerang zero-tolerance.

Terminal window
php artisan pasak:scan-logs [options]
  • --file=*: Berkas log yang diperiksa (dapat ditentukan lebih dari satu kali, misal: --file=/var/log/nginx/access.log --file=/var/log/nginx/access.log.1).
  • --ip=: Memfilter analisis hanya untuk satu alamat IP penyerang tertentu.
  • --since=: Membatasi baris sejak waktu tertentu (misal: "2 days ago" atau "2026-10-01 00:00").
  • --until=: Membatasi baris hingga waktu tertentu.
  • --min-level=: Saring level ancaman minimal (low, medium, high, critical).
  • --top=20: Jumlah IP penyerang teratas yang ditampilkan di tabel ringkasan.
  • --samples: Menampilkan contoh URI request yang mencurigakan untuk setiap IP.
  • --json: Mengeluarkan hasil analisis dalam format JSON murni (cocok untuk pipeline SIEM / alerting).
  • --import: Menyimpan temuan ke tabel database pasak_logs.
  • --block: Memblokir otomatis IP yang memicu signature zero-tolerance.
  • --dry-run: Mode simulasi: menampilkan apa saja yang akan diblokir/diimpor tanpa mengubah data apa pun di database.
Terminal window
# 1. Analisis cepat 24 jam terakhir tanpa ubah database
php artisan pasak:scan-logs --since="24 hours ago" --samples
# 2. Tangkap penyerang dan blokir langsung di database
php artisan pasak:scan-logs --since="6 hours ago" --import --block

Membuat, mengaudit, atau menghapus baseline hash SHA-256 integritas berkas aplikasi.

Terminal window
php artisan pasak:baseline [options]
  • (tanpa opsi): Membuat baseline baru jika belum ada, atau menampilkan ringkasan baseline yang tersimpan.
  • --check: Membandingkan kondisi berkas saat ini dengan baseline tanpa menulis apa pun ke disk (mode audit).
  • --prune: Menghapus berkas baseline yang tersimpan di storage/app/security-baseline.json.
  • --force: Membuat baseline baru dan menimpa baseline lama tanpa meminta konfirmasi interaktif.
Baseline SHA-256 dibuat: 2026-10-01 10:00:00 (1.420 berkas)
Status Audit:
- Berkas dimodifikasi : 0
- Berkas hilang : 0
- Berkas baru : 1 (public/uploads/backdoor.php) [PERINGATAN!]

Membuka blokir alamat IP yang terkena karantina WAF. Berfungsi sebagai Escape Hatch darurat jika administrator tidak sengaja memblokir IP mereka sendiri.

Terminal window
php artisan pasak:unblock-ip [ip] [options]
  • ip: Alamat IP yang ingin dibuka blokirnya (misal: 198.51.100.50).
  • --all: Membuka blokir seluruh IP yang sedang aktif sekaligus.
  • --list: Menampilkan daftar seluruh IP yang sedang diblokir aktif saat ini.
Terminal window
# Buka blokir satu IP
php artisan pasak:unblock-ip 198.51.100.50
# Lihat siapa saja yang sedang diblokir
php artisan pasak:unblock-ip --list
# Buka seluruh blokir saat insiden darurat
php artisan pasak:unblock-ip --all

Membersihkan riwayat log keamanan yang telah melewati batas retensi waktu.

Terminal window
php artisan pasak:prune-logs [options]
  • --days=: Mengesampingkan konfigurasi retensi hari (default: PASAK_LOG_RETENTION_DAYS, biasanya 90 hari).
Terminal window
# Bersihkan log yang lebih tua dari 30 hari
php artisan pasak:prune-logs --days=30

Mendeteksi dan menghapus residu payload pentest atau injeksi yang tersimpan di dalam tabel aplikasi (misal {{7*7}}, .htaccess, ../../../public/).

Terminal window
php artisan pasak:purge-injected-data [options]
  • (tanpa --force): Menjalankan mode simulasi (hanya mendeteksi dan menampilkan daftar baris data yang tercemar tanpa menghapusnya).
  • --force: Menghapus baris data tercemar yang ditemukan.
  • --marker=*: Marker teks spesifik yang dicari (dapat diulang, default: canary pentest umum).
  • --model=*: Membatasi pencarian pada model Eloquent tertentu.

Memperbarui paket via Composer lalu menyinkronkan migrasi, rute kustom, dan tampilan dashboard tanpa menimpa kustomisasi host (sinkronisasi paksa mencadangkan dulu ke *.backup-*).

Terminal window
php artisan pasak:upgrade --check
php artisan pasak:upgrade --force --no-composer --no-migrate
  • --check: Hanya memeriksa versi terbaru tanpa mengubah apa pun.
  • --force: Jalankan penuh meskipun sudah versi terbaru.
  • --no-composer: Lewati composer update (sinkronisasi aset lokal saja).
  • --no-migrate: Lewati php artisan migrate.
  • --sync-routes / --sync-views: Timpa berkas rute/tampilan setelah mencadangkan.

Mencopot seluruh jejak paket dari aplikasi host tanpa merusaknya: menghapus 7 tabel Pasak (+ record migrasinya), rute publikasi, middleware, trait User, variabel PASAK_*, mengembalikan .htaccess dari cadangan, menghapus berkas publikasi, dan menjalankan composer remove.

Terminal window
php artisan pasak:uninstall --force
  • --force: Jalankan tanpa konfirmasi interaktif.
  • --keep-tables: Pertahankan tabel database.
  • --keep-env: Pertahankan variabel .env.