Systems & Infra
ChatAsisten: Personal Linux Infrastructure & Multi-LLM WhatsApp Daemon
Always-on 24/7 Self-Hosted Edge Linux Server powering a WhatsApp assistant for isolated multi-user academic calendar tracking, reminders, and multi-LLM routing behind private Tailscale access.
System Implementation & Approach
Non-root Node.js systemd daemon (chatasisten.service) running Baileys WhatsApp Web API for multimodal inputs (text, voice notes, vision images, PDF documents), a built-in tool engine (/status, /logs, /ekspor), SQLite persistence, and hybrid AI routing (Groq primary low-latency with OpenRouter and Gemini fallback) under a 192 MB IPv4-first V8 heap cap (~64.5 MB observed RSS), hardened with UFW firewall, Fail2Ban, DoH local DNS, and Tailscale mesh.
Role & Contribution
Individual engineering: authored the systemd service unit, hardened non-root execution (User=bagusa), built isolated multi-user .ics LMS calendar parsing with per-user reminders, implemented multi-LLM failover routing, and added an automated verification suite (selftest.js).
Key Implementation Highlights
- Non-root systemd unit (/etc/systemd/system/chatasisten.service) running under User=bagusa with --dns-result-order=ipv4first, --max-old-space-size=192, LimitNOFILE=65536, and Restart=always.
- Strict host isolation via Tailscale VPN mesh SSH, UFW default-deny ingress filtering, and Fail2Ban intrusion protection with zero exposed public application ports.
- Isolated per-user SQLite storage supporting custom .ics calendar uploads, CeLOE/LMS deadline queries, automated reminders, and sysadmin allowlist / CSV exports.
Verification & Outcomes
- Production systemctl status verified active (running) 24/7 at 64.5 MB memory footprint and 11 tasks.
- Automated selftest.js suite passed all 6 assertions (ALL_CHATASISTEN_TESTS_PASSED): LMS loading, calendar isolation, custom .ics /lms routing, reminders, formatter, and allowlist/CSV checks.
- Live WhatsApp assistant verified answering same-day assignment queries and nearest academic deadlines with interactive reminder scheduling.
Field Artifacts
Visual Evidence & Technical Artifacts
Sanitized assembly photos, live telemetry captures, and engineering verification artifacts.
Production systemctl cat & status for chatasisten.service showing non-root execution (User=bagusa), 192 MB heap cap, and 64.5 MB active memory
Automated node selftest.js verification passing all 6 checks (ALL_CHATASISTEN_TESTS_PASSED) covering calendar isolation, reminders, and allowlist security
Live WhatsApp conversation retrieving today deadlines and upcoming course milestones from isolated LMS calendar storage
End-to-end ChatAsisten architecture: Multimodal Baileys client (Text, Voice Note, Vision, PDF), non-root systemd daemon & Tool Engine (/status, /logs, /ekspor), Hybrid AI Engine (Groq primary, OpenRouter/Gemini fallback), and Hardened Infra (DoH Local DNS, Tailscale Mesh, UFW)