Kantor 3D ini dapat membaca metrik container Docker & proses server kamu secara real-time melalui HTTP JSON endpoint.
Status: Menggunakan Mode Simulasi Interaktif. Jika endpoint gagal dihubungi, otomatis aman kembali ke simulasi.
Simpan kode di bawah sebagai server-agent.js di server kamu lalu jalankan dengan node server-agent.js. Script ini tanpa dependency tambahan (murni bawaan Node.js) dan otomatis membaca docker stats serta CPU/RAM server!
const http = require('http');
const { exec } = require('child_process');
const os = require('os');
const PORT = 3001;
// Pemetaan otomatis nama container/proses ke departemen kantor 3D
function detectDept(name) {
const n = name.toLowerCase();
if (n.includes('apache') || n.includes('httpd') || n.includes('nginx') || n.includes('proxy')) return 'reception';
if (n.includes('hermes') || n.includes('n8n') || n.includes('toko') || n.includes('tailscale')) return 'ops';
if (n.includes('mariadb') || n.includes('mysql') || n.includes('redis') || n.includes('postgres')) return 'database';
if (n.includes('uptime') || n.includes('cbt') || n.includes('keycloak') || n.includes('sandbox') || n.includes('searxng')) return 'ailab';
return 'ops';
}
http.createServer((req, res) => {
res.setHeader('Access-Control-Allow-Origin', '*');
if (req.url !== '/api/server-office') {
res.writeHead(200); return res.end('srv1049803 KantorServer 3D Agent Active');
}
// Ambil statistik Docker container
exec('docker stats --no-stream --format "{{.ID}}|{{.Name}}|{{.CPUPerc}}|{{.MemUsage}}"', (err, stdout) => {
const workers = [];
if (!err && stdout.trim()) {
stdout.trim().split('\n').forEach((line) => {
const [id, name, cpuStr, memStr] = line.split('|');
const cpu = parseFloat((cpuStr || '0').replace('%', '')) || 1;
const memMatch = (memStr || '').match(/([0-9.]+)([A-Za-z]+)/);
let ramMb = 128;
if (memMatch) { ramMb = parseFloat(memMatch[1]); if (memMatch[2].toUpperCase().includes('G')) ramMb *= 1024; }
workers.push({ id: id.slice(0, 6), name, dept: detectDept(name), cpu: Math.min(100, Math.round(cpu)), ram: Math.round(ramMb), status: 'online' });
});
}
// Tambah proses non-Docker penting
exec('ps aux --sort=-%mem | head -20', (e2, ps2) => {
const totalMemGb = +(os.totalmem() / 1073741824).toFixed(1);
const usedMemGb = +((os.totalmem() - os.freemem()) / 1073741824).toFixed(1);
res.writeHead(200, { 'Content-Type': 'application/json' });
res.end(JSON.stringify({ hostname: 'srv1049803', ramUsedGb: usedMemGb, ramTotalGb: totalMemGb, workers }));
});
});
}).listen(PORT, '127.0.0.1', () => console.log('srv1049803 KantorServer 3D Agent jalan di port ' + PORT));
Tips: Jika karyawan memiliki CPU < 10%, karakter otomatis pergi ngopi ke Pantry!
Peta Domain Server srv1049803
22 domain dikelola oleh 4 keluarga domain — dipantau oleh uptime-kuma
22
Total Domain
6
SSL Aktif
16
Tanpa SSL
4
Keluarga Domain
alkhoirifamily.my.id
(6 subdomain)Aji BK (personal)
SSLkantor3d.alkhoirifamily.my.id
Static HTML← apache-httpd
NO SSLlotr.alkhoirifamily.my.id
Static HTML← apache-httpd
SSLn8n.alkhoirifamily.my.id
n8n (port 5678)← n8n
SSLpodcast.alkhoirifamily.my.id
Static HTML← apache-httpd
SSLspenduga.alkhoirifamily.my.id
PHP-FPM 8.3← apache-httpd
SSLtoko.alkhoirifamily.my.id
Next.js (port 3002)← toko-jajanan
dsupatmo.my.id
(6 subdomain)SD Supatmo
NO SSLcbt.dsupatmo.my.id
PHP-FPM← apache-httpd
NO SSLdsupatmo.my.id
PHP-FPM← apache-httpd
NO SSLpandu.dsupatmo.my.id
PHP-FPM← apache-httpd
NO SSLsima.dsupatmo.my.id
PHP-FPM← apache-httpd
NO SSLswb.dsupatmo.my.id
PHP-FPM← apache-httpd
NO SSLtkd.dsupatmo.my.id
PHP-FPM← apache-httpd
smpn2glagah.sch.id
(9 subdomain)SMP Negeri 2 Glagah, Banyuwangi
NO SSLbk.smpn2glagah.sch.id
PHP-FPM← apache-httpd
NO SSLcbt.smpn2glagah.sch.id
CBT binary (port 998)← cbt-exam
SSLdata.smpn2glagah.sch.id
Static HTML← apache-httpd
NO SSLgudep.smpn2glagah.sch.id
PHP-FPM← apache-httpd
NO SSLlms.smpn2glagah.sch.id
PHP-FPM← apache-httpd
NO SSLsipelas.smpn2glagah.sch.id
PHP-FPM← apache-httpd
NO SSLsiswa.smpn2glagah.sch.id
PHP-FPM← apache-httpd
NO SSLsmpn2glagah.sch.id
PHP-FPM← apache-httpd
NO SSLuks.smpn2glagah.sch.id
PHP-FPM← apache-httpd
ijenesiatraveler.com
(1 subdomain)Blog travel
NO SSLijenesiatraveler.com
PHP-FPM← apache-httpd
Dipantau oleh uptime-kuma (Docker, port 3001)
Dirutekan oleh apache-httpd (port 80/443)