Lewati ke konten utama

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.

ChatAsisten: Personal Linux Infrastructure & Multi-LLM WhatsApp Daemon

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.

  • 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.
  • 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.