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 / adminganti 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