Info System HTML

Kalau di-host dengan Nginx di Armbian, solusi yang paling rapi adalah:

**Armbian → script shell → JSON → Nginx → index.html**

Sehingga data CPU, RAM, suhu, storage, dan uptime selalu update otomatis.

## 1. Buat script pengumpul data

“`bash
nano /usr/local/bin/sysinfo.sh
“`

Isi:

“`bash
#!/bin/bash

LOAD=$(awk -v c=”$(nproc)” ‘{printf “%.0f%%”, ($1/c)*100}’ /proc/loadavg)

MEM=$(free -m | awk ‘/Mem:/ {
used=$3;
total=$2;
printf “%.0f%% dari %.2fG”, (used/total)*100, total/1024
}’)

TEMP=$(cat /sys/class/thermal/thermal_zone0/temp 2>/dev/null)

if [ -n “$TEMP” ]; then
TEMP=”$((TEMP/1000))° Celcius”
else
TEMP=”N/A”
fi

DISK=$(df -h / | awk ‘NR==2{
printf “%s of %s”,$5,$2
}’)

UPTIME=$(uptime -p \
| sed ‘s/up //’ \
| sed ‘s/ days\?/hari/g’ \
| sed ‘s/ hours\?/jam/g’ \
| sed ‘s/ minutes\?/mnt/g’ \
| sed ‘s/,//g’)

MOPIDY=$(systemctl is-active mopidy)
CAMILLA=$(systemctl is-active camilladsp)
NGINX=$(systemctl is-active nginx)

cat <<EOF
{
“load”:”$LOAD”,
“memory”:”$MEM”,
“temp”:”$TEMP”,
“disk”:”$DISK”,
“uptime”:”$UPTIME”,
“mopidy”:”$MOPIDY”,
“camilla”:”$CAMILLA”,
“nginx”:”$NGINX”
}
EOF
“`

Simpan.

Beri izin:

“`bash
chmod +x /usr/local/bin/sysinfo.sh
“`

## 2. Buat file JSON yang di-update otomatis

“`bash
mkdir -p /var/www/html/api
“`

Test:

“`bash
/usr/local/bin/sysinfo.sh > /var/www/html/api/sysinfo.json
“`

Cek:

“`bash
cat /var/www/html/api/sysinfo.json
“`

Harus muncul:

“`json
{
“load”:”6%”,
“memory”:”15% dari 1.87G”,
“temp”:”54° Celcius”,
“disk”:”42% of 5.7G”,
“uptime”:”54mnt”,
“mopidy”:”active”,
“camilla”:”active”,
“nginx”:”active”
}
“`

## 3. Update otomatis tiap 10 detik

“`bash
crontab -e
“`

Tambahkan:

“`cron
* * * * * /usr/local/bin/sysinfo.sh > /var/www/html/api/sysinfo.json
* * * * * sleep 10; /usr/local/bin/sysinfo.sh > /var/www/html/api/sysinfo.json
* * * * * sleep 20; /usr/local/bin/sysinfo.sh > /var/www/html/api/sysinfo.json
* * * * * sleep 30; /usr/local/bin/sysinfo.sh > /var/www/html/api/sysinfo.json
* * * * * sleep 40; /usr/local/bin/sysinfo.sh > /var/www/html/api/sysinfo.json
* * * * * sleep 50; /usr/local/bin/sysinfo.sh > /var/www/html/api/sysinfo.json
“`

## 4. Tambahkan panel di sidebar

Tepat setelah:

“`html
<div class=”mode-buttons”>

</div>
“`

Tambahkan:

“`html
<div class=”system-info”>

<div><span class=”label”>Load</span> :
<span id=”load”>–</span></div>

<div><span class=”label”>Memory</span> :
<span id=”memory”>–</span></div>

<div><span class=”label”>CPU Temp</span> :
<span id=”temp”>–</span></div>

<div><span class=”label”>Storage</span> :
<span id=”disk”>–</span></div>

<div><span class=”label”>Uptime</span> :
<span id=”uptime”>–</span></div>

</div>
“`

## 5. Tambahkan CSS

Di bagian `<style>`:

“`css
.system-info{
margin-top:15px;
padding:12px;
background:#151515;
border:1px solid #2a2a2a;
border-radius:10px;
color:#9cff9c;
font-family:monospace;
font-size:13px;
line-height:1.8;
}

.label{
color:#888;
display:inline-block;
width:80px;
}
“`

## 6. Tambahkan JavaScript

Sebelum `</script>` yang sudah ada:

“`javascript
async function updateSystemInfo(){

try{

const res = await fetch(‘/api/sysinfo.json?t=’ + Date.now());
const data = await res.json();

document.getElementById(‘load’).textContent = data.load;
document.getElementById(‘memory’).textContent = data.memory;
document.getElementById(‘temp’).textContent = data.temp;
document.getElementById(‘disk’).textContent = data.disk;
document.getElementById(‘uptime’).textContent = data.uptime;

}catch(e){
console.log(e);
}

}

updateSystemInfo();
setInterval(updateSystemInfo,10000);
“`

Hasilnya nanti area kosong di bawah preset akan berubah menjadi dashboard kecil seperti:

“`text
Load : 12%
Memory : 34% of 1.87G
CPU Temp : 48°C
Storage : 41% of 6.7G
Uptime : 2 hours
“`

dan nilainya akan refresh otomatis setiap 10 detik tanpa reload halaman. Ini cukup ringan untuk STB S905X yang sedang menjalankan MPD + CamillaDSP.

Scroll to Top