Referensi Perintah
Semua perintah examtool dan opsinya.
install
Instalasi lengkap server ujian.
examtool install \
--domain=ujian.fk.example.ac.id \
--client=200 \
--file-crt=/root/ssl/ujian.crt \
--file-key=/root/ssl/ujian.key \
--username=admin01 \
--password=Rahasia123
| Parameter | Wajib | Keterangan |
|---|---|---|
--domain |
Ya | Domain server ujian |
--client |
Ya | Jumlah PC ujian + cadangan (max 500) |
--file-crt |
Ya | Path ke file SSL certificate |
--file-key |
Ya | Path ke file SSL private key |
--username |
Ya | Username admin (3-32 char, huruf kecil) |
--password |
Ya | Password admin (8-32 char, huruf + angka) |
--env-file |
Tidak | Path ke file .env (default: /etc/examtool.env) |
Jika dijalankan di server yang sudah terinstall, otomatis masuk mode reconfiguration.
status
Health check lengkap server.
examtool status
Output mencakup:
- Status semua service (nginx, php-fpm, mariadb, memcached, fail2ban, dnsmasq)
- Resource usage (CPU, RAM, disk, swap)
- Koneksi database dan ukuran DB
- SSL certificate expiry
- Nginx config test
- Memcached hit ratio
- Fail2ban banned IPs
- Error log terbaru (1 jam)
- Versi aplikasi (git commit)
Exit code 0 = semua OK. Non-zero = ada masalah.
update
Pull kode terbaru dari repository GitLab.
examtool update
Mengupdate kedua repository (ujian + rasch), regenerate config, dan reload nginx + php-fpm.
self-update
Update script examtool ke versi terbaru.
examtool self-update
Download versi baru dengan verifikasi SHA256 checksum.
backup-db
Backup database ke file .sql.gz.
examtool backup-db --path=/root/backup_db
| Parameter | Default | Keterangan |
|---|---|---|
--path |
/root/backup_db |
Direktori tujuan backup |
File backup diberi nama otomatis: backup_db_ujian_YYYYMMDD_HHMMSS.sql.gz
restore-db
Restore database dari file backup.
# Dari file .sql
examtool restore-db --file=/root/backup_db/backup.sql
# Dari file .sql.gz (compressed)
examtool restore-db --file=/root/backup_db/backup.sql.gz
| Parameter | Wajib | Keterangan |
|---|---|---|
--file |
Ya | Path ke file backup (.sql atau .sql.gz) |
reconfigure
Ubah konfigurasi tanpa install ulang.
examtool reconfigure --domain=ujian-baru.example.ac.id
examtool reconfigure --client=300
examtool reconfigure --file-crt=/root/ssl/new.crt --file-key=/root/ssl/new.key
Parameter yang tidak diberikan akan menggunakan nilai sebelumnya.
uninstall
Hapus semua konfigurasi server ujian.
examtool uninstall --confirm
Flag --confirm wajib untuk mencegah penghapusan tidak sengaja.
Yang dihapus: konfigurasi nginx, php-fpm, mariadb, memcached, fail2ban, firewall rules, SSL, aplikasi. Backup terakhir otomatis disimpan di /root/examtool-final-backup/.
Yang tidak dihapus: packages (nginx, mariadb, dll). Gunakan apt purge jika ingin menghapus.
env-template
Output template file environment ke stdout.
examtool env-template > /etc/examtool.env
chmod 600 /etc/examtool.env
setup-monitoring
Install monitoring stack (opsional). Komponen: Grafana, Prometheus, Node Exporter, MariaDB Exporter, Memcached Exporter, Nginx Exporter, PHP-FPM Exporter.
examtool setup-monitoring
Semua exporter hanya bind ke 127.0.0.1 (tidak exposed ke luar). Grafana diakses via https://domain/grafana/.
Login default Grafana: admin / admin — ganti segera setelah install.
remove-monitoring
Hapus seluruh monitoring stack.
examtool remove-monitoring --confirm
Flag --confirm wajib. Menghapus: Grafana, Prometheus, semua exporter, service users, Nginx proxy config.
check-update
Periksa apakah ada versi terbaru dari portal.
examtool check-update
Membandingkan versi lokal dengan versi terbaru di portal. Jika ada update, tampilkan perintah untuk mengupdate.
version
Tampilkan versi script.
examtool version