Panduan Instalasi

Panduan lengkap untuk menginstall server ujian FK menggunakan script examtool. Untuk lebih mengenal examtool ini, silakan kunjungi terlebih dahulu halaman Apa itu examtool ?

Prasyarat

Sebelum memulai, pastikan Anda memiliki:

  • Server dengan Debian 13 (Trixie) fresh install
  • Akses root ke server (via SSH atau langsung)
  • Domain yang sudah diarahkan ke IP server
  • SSL Certificate dan private key (.crt + .key, format PEM, RSA atau EC key) — opsional jika server di belakang reverse proxy

Tidak yakin mode mana yang sesuai? Lihat Topologi Jaringan untuk perbandingan deployment direct vs via proxy.

Lumbung Soal Nasional: Jika institusi menggunakan Lumbung Soal, domain server ujian harus bisa diakses dari internet agar Lumbung bisa push soal via API. Lihat Akses Lumbung Soal.

Langkah 1: Download Script

Login ke server sebagai root:

su -

Install paket curl :
apt install curl -y

Download script examtool dari portal:
curl -fsSL https://kb.ujiancbt.online/download/examtool -o /usr/local/bin/examtool
chmod +x /usr/local/bin/examtool

Verifikasi:
examtool version

Langkah 2: Upload SSL Certificate

⚠️ Menggunakan topologi via HTTP Proxy? Langkah ini tidak perlu dilakukan. Langsung lanjut ke Langkah 3. SSL ditangani oleh reverse proxy, bukan server ujian.

Upload file SSL certificate dan key ke server. Contoh:

⚠️ PERHATIAN: Sesuaikan Perintah Berikut

  • Nama File: Ganti ujian.crt dan ujian.key dengan nama file sertifikat instansi Anda.
  • Akses Server: Ganti root@IP_SERVER dengan user dan IP/Domain akses SSH server Anda.
scp ujian.crt root@IP_SERVER:/root/ssl/ujian.crt
scp ujian.key root@IP_SERVER:/root/ssl/ujian.key

Langkah 3: Jalankan Instalasi

💡 Gunakan Config Wizard untuk generate perintah install yang sudah disesuaikan dengan topologi, jumlah client, dan konfigurasi server Anda. Wizard menghasilkan perintah siap-copy di tab "Perintah".

Atau jalankan manual dengan contoh berikut:

⚠️ PERHATIAN: Pastikan Anda menyesuaikan parameter perintah di bawah ini dengan data instansi Anda:

  • --domain: Ganti dengan domain/subdomain CBT Anda (contoh: cbt.instansi.com).
  • --client: Ganti dengan target maksimal jumlah user bersamaan.
  • --file-crt & --file-key: Sesuaikan dengan path direktori tempat file SSL Anda berada (jika menggunakan HTTPS).
  • --username & --password: Ganti dengan akun admin baru yang ingin Anda buat untuk panel CBT.

Dengan HTTPS (topologi Direct):

examtool install \
    --domain=demo.ujiancbt.online \
    --client=200 \
    --file-crt=/root/ssl/ujian.crt \
    --file-key=/root/ssl/ujian.key \
    --username=webdev01 \
    --password=Rahasia123

HTTP-only (topologi via Proxy):

examtool install \
    --domain=demo.ujiancbt.online \
    --client=200 \
    --username=webdev01 \
    --password=Rahasia123

Tanpa --file-crt dan --file-key, server hanya listen di port 80 (HTTP). Gunakan mode ini jika ada reverse proxy (Nginx/Apache/Caddy) di depannya yang menangani SSL termination.

Catatan: File /etc/examtool.env akan otomatis dibuat dari template jika belum ada. Password database juga di-generate otomatis dan disimpan ke file .env.

Proses instalasi akan:

  1. Validasi resource server (CPU, RAM)
  2. Tambah repositori PHP (sury.org) dan Nginx (nginx.org)
  3. Install semua paket (Nginx >= 1.30, PHP 8.3-FPM, MariaDB, Memcached, Fail2ban)
  4. Konfigurasi tiap service sesuai tier
  5. Clone aplikasi dari repository
  6. Download dan setup database dari portal (opsional, ada prompt konfirmasi)
  7. Konfigurasi SSL, firewall, rate limiting
  8. Jalankan health check otomatis

Langkah 4: Verifikasi

Setelah instalasi selesai:

examtool status

Buka browser dan akses https://domain-anda (atau http://domain-anda jika HTTP-only) untuk memastikan aplikasi berjalan.

Setelah Instalasi

  • Simpan informasi kredensial yang ditampilkan di akhir instalasi
  • Password database tersimpan di /etc/examtool.conf dan /etc/examtool.env
  • Examtool otomatis cek update setiap kali dijalankan — jika ada versi baru di portal, akan muncul prompt untuk update
  • Baca Tips & Best Practices untuk pengoperasian harian

Monitoring (Opsional)

Setelah install, Anda bisa menambahkan monitoring stack:

examtool setup-monitoring

Grafana akan tersedia di http://IP_SERVER:3000 dengan dashboard otomatis. Lihat Panduan Monitoring untuk detail.