Sistem & Infra
ChatAsisten: Personal Linux Infrastructure & Multi-LLM WhatsApp Daemon
Self-Hosted Edge Linux Server 24/7 yang menjalankan asisten WhatsApp untuk pelacakan kalender akademik multi-pengguna terisolasi, pengingat otomatis, dan routing multi-LLM di balik akses privat Tailscale.
Implementasi & Rancangan Sistem
Daemon systemd Node.js non-root (chatasisten.service) yang menjalankan Baileys WhatsApp Web API untuk input multimodal (teks, voice note, vision gambar, dokumen PDF), tool engine internal (/status, /logs, /ekspor), penyimpanan SQLite, serta routing AI hibrida (Groq latensi rendah sebagai utama dengan cadangan OpenRouter dan Gemini) di bawah batas heap 192 MB IPv4-first (~64.5 MB RSS terukur), diamankan UFW firewall, Fail2Ban, DNS lokal DoH, dan Tailscale mesh.
Peran & Kontribusi
Rekayasa mandiri: menyusun unit layanan systemd, mengamankan eksekusi non-root (User=bagusa), membangun parser kalender LMS .ics multi-pengguna terisolasi beserta pengingat per pengguna, mengimplementasikan routing failover multi-LLM, serta membuat pengujian otomatis selftest.js.
Poin Utama Implementasi
- Unit systemd non-root (/etc/systemd/system/chatasisten.service) berjalan sebagai User=bagusa dengan --dns-result-order=ipv4first, --max-old-space-size=192, LimitNOFILE=65536, dan Restart=always.
- Isolasi host ketat melalui Tailscale VPN mesh untuk SSH, firewall UFW default-deny, dan Fail2Ban tanpa mengekspos port aplikasi ke internet publik.
- Penyimpanan SQLite terisolasi per pengguna untuk unggah kalender .ics kustom, kueri tenggat CeLOE/LMS, pengingat otomatis, allowlist sysadmin, serta ekspor CSV.
Bukti Verifikasi & Hasil
- Status produksi systemctl terverifikasi active (running) 24/7 dengan pemakaian memori 64.5 MB dan 11 tasks.
- Seluruh 6 pengujian otomatis selftest.js lulus (ALL_CHATASISTEN_TESTS_PASSED): muat LMS, isolasi kalender, rute .ics /lms, pengingat, formatter WhatsApp, serta allowlist/CSV.
- Asisten WhatsApp aktif terverifikasi menjawab kueri tugas harian dan tenggat terdekat beserta penjadwalan pengingat.
Dokumentasi Lapangan
Galeri Bukti & Dokumentasi Teknis
Foto perakitan, tangkapan telemetri langsung, dan artefak pengujian terkurasi tanpa metadata pribadi.
Output produksi systemctl cat & status pada chatasisten.service: eksekusi non-root (User=bagusa), batas heap 192 MB, dan memori aktif 64.5 MB
Eksekusi node selftest.js lulus 6 pengujian (ALL_CHATASISTEN_TESTS_PASSED) meliputi isolasi kalender, pengingat, dan keamanan allowlist
Interaksi langsung WhatsApp menampilkan tenggat tugas hari ini dan jadwal kuliah terdekat dari penyimpanan kalender LMS terisolasi
Arsitektur menyeluruh ChatAsisten: Klien Baileys multimodal (Teks, Voice Note, Vision, PDF), daemon systemd non-root & Tool Engine (/status, /logs, /ekspor), Hybrid AI Engine (Groq utama, OpenRouter/Gemini cadangan), serta infrastruktur terhardening (DNS Lokal DoH, Tailscale Mesh, UFW)