Monyx adalah sebuah dashboard web single-page application (SPA) premium, ringan, dan responsif yang dirancang khusus untuk memonitoring serta mengelola server Armbian Linux secara real-time. Memadukan desain modern bernuansa dark mode dan glassmorphism dengan backend Node.js yang cepat, aman, dan efisien.
- Gauge Metrik Dinamis: Pemantauan langsung untuk penggunaan CPU, RAM, Suhu (Thermal Sensor Linux), serta kapasitas penyimpanan Disk.
- Grafik Historis: Visualisasi data historis metrik sistem menggunakan Chart.js untuk memantau tren beban server.
- Statistik Jaringan: Informasi real-time kecepatan transfer Tx/Rx (Transmit/Receive) pada antarmuka jaringan.
- Filter Fisik Jaringan: Menampilkan informasi status IP adapter (
eth0,wlan0, dsb) dan menyembunyikan interface virtual/tun jika diinginkan.
- Mengontrol layanan sistem (systemd service) secara langsung seperti Start, Stop, dan Restart.
- Menampilkan log sistem (systemd journal logs) secara dinamis (real-time logs streaming).
- Antarmuka visual untuk menambah, memperbarui, mencantumkan, dan menghapus Cron Jobs langsung ke berkas crontab server tanpa akses SSH.
- Pencegahan Path Traversal: Proteksi ketat keamanan dengan isolasi folder di bawah jalur
/mnt/. - Custom Context Menu (Desktop-Style): Klik-kanan interaktif untuk melakukan aksi cepat seperti:
- Open / Preview
- Download File
- Rename File/Folder
- Delete File/Folder
- Media Preview & Streaming (HTTP Range):
- Pemutaran langsung media Video (MP4, WebM, MKV) dan Audio (MP3, WAV) langsung di dalam browser lengkap dengan fitur pencarian durasi (media seeking) memanfaatkan HTTP Range requests.
- Pemuatan gambar dinamis menggunakan Blob URL berbasis autentikasi token.
- Pembaca dokumen teks / kode program terformat monospaced.
- Upload & Download: Upload file multi-part hingga limit 100MB dan download aman dengan token JWT.
Tampilan opsi melayang yang responsif terhadap posisi kursor mouse:

Modal interaktif premium untuk pratinjau media secara langsung:

- Frontend: HTML5, Vanilla JavaScript, Tailwind CSS (v3 via CDN), Lucide Icons, Chart.js.
- Backend: Node.js, Express.js.
- Database: SQLite 3 (menggunakan driver performa tinggi
better-sqlite3). - Autentikasi: JSON Web Token (JWT) berbasis enkripsi payload.
- Upload handler: Multer.
- Node.js (versi 16 atau lebih baru)
- NPM (Node Package Manager)
- OS Target: Armbian Linux (Untuk sistem non-Linux seperti Windows, backend otomatis beralih ke mode simulasi/mock data demi kemudahan pengujian).
# Clone repository ini
git clone https://github.com/jnckcode/Monyx.git
cd Monyx
# Pasang semua dependensi
npm install
# Buat file konfigurasi environment (.env)
# Isi PORT, JWT_SECRET, dan DB_PATH (misal: database.sqlite)
cp .env.example .env # Atau buat berkas baru
# Jalankan server
node server.jsAkses dashboard melalui browser di alamat http://localhost:3000.
- Kredensial Default:
admin/root.
Proyek ini dilengkapi dengan skrip instalasi untuk memasang Monyx sebagai layanan latar belakang (background systemd service) agar otomatis berjalan saat server pertama kali dihidupkan (boot).
# Berikan izin eksekusi skrip installer
chmod +x install.sh
# Jalankan skrip installer (memerlukan hak akses sudo)
sudo ./install.sh# Berikan izin eksekusi skrip uninstaller
chmod +x uninstall.sh
# Hapus instalasi service
sudo ./uninstall.shPemetaan jalur API terlindung token JWT (kecuali Auth):
| Method | Path | Keterangan |
|---|---|---|
| POST | /api/auth/login |
Login admin, mengembalikan token JWT |
| GET | /api/auth/verify |
Validasi kredensial token |
| GET | /api/metrics |
Metrik utilisasi CPU, RAM, Disk, Temp |
| GET | /api/services |
Daftar status layanan systemd |
| POST | /api/services/:name/:action |
Mengontrol siklus layanan (start/stop/restart) |
| GET | /api/logs |
Membaca log systemd journal secara real-time |
| GET | /api/cron |
List Cron Jobs |
| POST | /api/cron |
Menambah Cron Job baru |
| DELETE | /api/cron/:id |
Menghapus Cron Job |
| GET | /api/files |
Daftar isi direktori di /mnt/ |
| POST | /api/files/mkdir |
Membuat folder baru |
| POST | /api/files/rename |
Mengubah nama file/folder |
| DELETE | /api/files?path=xxx |
Menghapus file/folder |
| GET | /api/files/download |
Download berkas |
| GET | /api/files/preview |
Preview media / streaming file inline |
| POST | /api/files/upload |
Unggah file (Limit 100MB) |
Proyek ini dilisensikan di bawah MIT License. Silakan gunakan, modifikasi, dan kembangkan sesuai kebutuhan Anda.