PXE Server Dashboard
Dashboard manajemen PXE Server untuk lab komputer, dibangun dengan Node.js + Express + EJS.
Fitur
-
โ Login dengan username & password -
๐ Editor teks untuk fileboot.ipxe(dengan backup otomatis) -
๐ค Upload/replace file:vmlinuz,initrd.img,filesystem.squashfs -
โ ๏ธ Monitor & kontrol service: dnsmaq, nginx, ipxe -
๐ Auto-refresh status service tiap 10 detik
Struktur Direktori
pxe-dashboard/
โโโ app.js # Entry point
โโโ package.json
โโโ middleware/
โ โโโ auth.js # Auth middleware
โโโ routes/
โ โโโ auth.js # Login/logout
โ โโโ dashboard.js # Halaman utama
โ โโโ files.js # Editor + upload
โ โโโ service.js # Monitor service
โโโ views/
โ โโโ partials/
โ โ โโโ head.ejs
โ โ โโโ nav.ejs
โ โ โโโ flash.ejs
โ โโโ login.ejs
โ โโโ dashboard.ejs
โ โโโ boot-editor.ejs
โ โโโ upload.ejs
โ โโโ service.ejs
โโโ public/
โโโ css/
โโโ style.css
Instalasi
1. Prasyarat
- Node.js >= 18
- npm >= 9
2. Install dependencies
cd pxe-dashboard
npm install
3. Konfigurasi sudo (untuk kontrol service)
Tambahkan ke /etc/sudoers (gunakan visudo):
www-data ALL=(ALL) NOPASSWD: /bin/systemctl start dnsmaq
www-data ALL=(ALL) NOPASSWD: /bin/systemctl stop dnsmaq
www-data ALL=(ALL) NOPASSWD: /bin/systemctl restart dnsmaq
www-data ALL=(ALL) NOPASSWD: /bin/systemctl start nginx
www-data ALL=(ALL) NOPASSWD: /bin/systemctl stop nginx
www-data ALL=(ALL) NOPASSWD: /bin/systemctl restart nginx
www-data ALL=(ALL) NOPASSWD: /bin/systemctl start ipxe
www-data ALL=(ALL) NOPASSWD: /bin/systemctl stop ipxe
www-data ALL=(ALL) NOPASSWD: /bin/systemctl restart ipxe
4. Pastikan direktori PXE ada
sudo mkdir -p /var/www/html/debian12/live
sudo chown -R $USER:$USER /var/www/html
5. Jalankan aplikasi
# Development
npm run dev
# Production
npm start
Buka browser: http://localhost:3000
Login Default
| Username | Password |
|---|---|
| admin | admin123 |
โ ๏ธ Ganti password di produksi! Edit fileroutes/auth.js, generate hash baru dengan:node -e "const b=require('bcryptjs'); b.hash('PASSWORD_BARU',10).then(h=>console.log(h))"
Environment Variables
PORT=3000 # Port server (default: 3000)
PXE_ROOT=/var/www/pxe-dashboard # Root direktori PXE (default: /var/www/pxe-dashboard)
Menjalankan sebagai Service (systemd)
Buat file /etc/systemd/system/pxe-dashboard.service:
[Unit]
Description=PXE Dashboard
After=network.target
[Service]
Type=simple
User=www-data
WorkingDirectory=/path/to/pxe-dashboard
ExecStart=/usr/bin/node app.js
Restart=on-failure
Environment=PORT=3000
Environment=PXE_ROOT=/var/www/pxe-dashboard
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable pxe-dashboard
sudo systemctl start pxe-dashboard
Jalur File yang Dikelola
| File | Path |
|---|---|
| boot.uefi | /var/www/html/boot.ipxe |
| vmlinuz | /var/www/html/debian12/live/vmlinuz |
| initrd.img | /var/www/html/debian12/live/initrd.img |
| filesystem.squashfs | /var/www/html/debian12/live/filesystem.squashfs |