Gua udah beberapa bulan jalanin Hermes Agent lewat CLI di laptop, dan sesuai skenario klasik: laptop mati = otomasi mati. Gua butuh sesuatu yang hidup 24 jam tanpa harus gua pegang, tapi tetap punya kontrol penuh atas apa yang boleh dijalankan bot. Jawabannya bukan cuma install Hermes di server, tapi menyusun lapisan Gateway, DM pairing, command approval, dan Docker sandbox sebagai backend aman.
Artikel ini bukan review. Gua tulis ini karena fase ini sendiri yang bikin gua mogok seminggu karena salah konfigurasi permission dan session yang ilang tiap restart. Fokusnya ke routing pesan Telegram, session persistence, dan biaya token bot yang jalan terus tanpa kejutan di billing. Semua langkah di sini didasari pengalaman deploy nyata, bukan dokumentasi teori yang lupa kasih pesan error saat deploy.
Kenapa Butuh Hermes Gateway Instead of CLI Langsung
Hermes CLI oke untuk sesi interaktif, tapi Telegram butuh lapisan yang menerima webhook, menyimpan state sesi per user, dan menentukan mana command yang boleh dieksekusi tanpa konfirmasi. Kalau lo akses Hermes langsung dari Telegram tanpa gateway, lo kehilangan routing, approval, dan session isolation antar pengguna. Hermes Gateway mengisi celah itu: dia berperan sebagai penghubung antara platform messaging dan runtime agent.
Gua pilih pendekatan ini karena gua butuh dua hal sekaligus: bot yang bisa dihubungi dari DM Telegram dan sistem yang bisa restart tanpa kehilangan percakapan. Gateway menyediakan keduanya. Multi-platform support juga jadi nilai tambah karena gua kadang akses dari Telegram dan Discord bergantian, dengan session yang tetap konsisten.
Setup Gateway dan Konfigurasi Dasar
Langkah pertama adalah menyiapkan konfigurasi Hermes Gateway. File konfigurasi menentukan port, token bot Telegram, mapping platform, dan routing rule. Pada praktiknya, gua simpan konfigurasi di direktori proyek dan menyalurkannya melalui environment variable saat runtime, bukan hardcode token.
Setelah konfigurasi dasar siap, jalankan gateway dan pastikan port terdeteksi dengan benar dengan `hermes gateway status`. Cara paling aman untuk langkah ini adalah pakai wizard `hermes gateway setup`, yang meminta token bot Telegram, chat yang diizinkan, dan opsi platform lain secara berurutan. Token bot sendiri lo dapat dari BotFather di Telegram, lalu disimpan sebagai environment variable, bukan ditulis langsung di file konfigurasi.
DM pairing adalah lapisan kedua. Waktu orang mengirim pesan pertama ke bot, gateway mengenali pengirim dan memetakan chat ID-nya ke profil Hermes, sehingga setiap user punya session terpisah dan hanya bisa menyentuh folder kerja sendiri. Perintah `hermes pairing` dipakai untuk melihat dan mengelola daftar pasangan yang sudah terdaftar. Kalau pairing gagal atau chat ID salah mapping, gejalanya jelas: semua pesan masuk ke satu session, dan ini salah satu kesalahan yang paling sering bikin bot terasa "aneh" setelah pertama kali jalan.
Hermes Gateway juga mendukung multi-platform, jadi satu konfigurasi bisa melayani Telegram, Discord, dan WhatsApp sekaligus. Setiap platform punya routing dan perilaku mention yang berbeda, tapi session per user tetap konsisten di belakang layar. Untuk gua, fleksibilitas ini penting karena kadang nanya ke bot lewat Discord di kantor dan lewat Telegram di luar. Session persistence membuat percakapan di satu platform bisa dilanjutkan di platform lain tanpa kehilangan konteks.
Jaga Session Tetap Hidup Tanpa Restart
Masalah pertama yang gua temukan: session hilang tiap kali service restart. Hermes Gateway menyimpan session di memory secara default, jadi restart systemd atau crash otomatis menghapus semua konteks percakapan. Solusinya adalah mengaktifkan session persistence agar state tersimpan di disk dan bisa di-reload saat service bangun kembali.
Gua arahkan session storage ke direktori yang bertahan di Docker volume atau path di VPS yang tidak ikut terhapus saat rebuild container. Dengan begitu, percakapan pagi yang ngomongin budget dan automasi tidak perlu diulang dari nol setiap kali ada maintenance. Ini juga yang bikin biaya token lebih terkontrol: context tidak harus direfresh berulang kali hanya karena session ilang.
Command approval adalah lapisan yang mencegah Hermes menjalankan aksi berisiko tanpa konfirmasi dulu. Pada dasarnya, gateway memfilter command yang masuk: command yang masuk kategori sensitif — misalnya menghapus file, mengirim email external, atau menjalankan perintah shell — tidak langsung dieksekusi, melainkan dikirim sebagai permintaan konfirmasi ke channel approval yang ditentukan.
Di praktik gua, approval bisa lewat Telegram itu sendiri atau channel terpisah. Kali ini command yang berbahaya ditahan, sementara command baca data atau fetch informasi tetap jalan otomatis. Pola ini mencegah kejadian where agent menghapus data production karena salah interpretasi prompt, sekaligus tetap menjaga alur otomasi yang cepat untuk tugas rutin.
Command approval bukan hanya layer untuk environment production, tapi yang bikin bot aman di VPS yang dikelola bersama. Dengan ini, lo bisa jalanin script sehari-hari tanpa terus-menerus pegang keyboard, tapi tetap aman dari tindakan yang mungkin merusak.
Systemd Service di VPS Sumopod agar Bot Jalan 24/7
Gateway tidak cukup hanya dijalankan manual. Di VPS Sumopod, gua bundel Hermes Gateway sebagai systemd service agar otomatis restart saat crash dan langsung aktif saat boot. Unit file menunjuk ke binary gateway, memuat environment file berisi token dan konfigurasi sensitif, dan mengarahkan log ke file yang bisa gua tail kapan saja.
Keuntungan pakai VPS Sumopod untuk kasus ini adalah setup yang cocok untuk workload ringan sampai menengah yang butuh nyala terus. Hermes Gateway tidak butuh resource setara ML training; CPU dan RAM menengah sudah cukup untuk menangani ratusan request Telegram sehari. Yang penting adalah uptime dan kontrol penuh atas OS-level setting, bukan spek yang overkill tapi susah di-maintain. Jalankan `hermes gateway install` sekali untuk mendaftarkan service, lalu `hermes gateway start` untuk menyalakannya. Setiap ada perubahan konfigurasi, pakai `hermes gateway restart` dari shell eksternal karena gateway tidak bisa me-restart dirinya sendiri dari dalam proses yang sedang jalan.
Docker Backend untuk Isolasi yang Aman
Docker bukan opsional, tapi lapisan keamanan tambahan yang gua wajibkan sebelum bot mengakses sistem file atau API eksternal. Hermes Gateway berjalan di dalam container, dengan access ke Docker socket atau volume yang sudah di-share secara selektif. Jika ada perintah yang berusaha keluar dari scope yang diizinkan, Docker sebagai backend akan membatasi dampaknya.
Pola yang gua pakai: container gateway hanya bisa akses direktori session dan file konfigurasi. Command shell yang dijalankan dari Telegram masuk ke runner terpisah yang juga di-wrap container, bukan langsung ke OS host. Dengan begitu, meskipun ada prompt injection atau command yang aneh, radius ledaknya cuma di dalam container yang bisa di-reset tanpa mengorbankan VPS utama.
Biaya Token yang Jalan Terus Tanpa Kejutan
Satu hal yang sering luput dari perhitungan awal: bot Telegram yang nyala 24/7 punya biaya token yang mengalir terus. Hermes Gateway menyimpan session persistence dan hanya memanggil model saat ada aktivitas baru, tapi jika ada loop polling atau cron internal yang berjalan terus, bill bisa naik perlahan tanpa disadari.
Pendekatan yang lebih aman adalah memisahkan cron job yang memang butuh polling tetap dari session pasif. Command approval juga jadi penghemat token karena prompt yang ambigu atau tidak perlu bisa ditolak sebelum memicu inference. Gua juga menambahkan threshold harian dan notifikasi saat penggunaan token melonjak signifikan, jadi billing tidak muncul surprise di akhir bulan.
Tips dari Pengalaman yang Bikin Gua Mogok Seminggu
Gua tidak mau cerita panjang, tapi ada tiga kesalahan yang bikin gua kehilangan seminggu: pertama, lupa memetakan chat ID Telegram ke sesi yang benar, sehingga semua pesan dari berbagai user masuk ke satu state. Kedua, menyimpan session di direktori yang ikut dihapus saat rebuild container. Ketiga, mengizinkan semua command tanpa approval sampai ada insiden kecil yang hampir menghapus data penting.
Pelajaran pentingnya: luangkan dua jam untuk setup awal dengan benar, daripada dua minggu memperbaiki kerusakan di tengah jalan. Hermes Gateway dirancang untuk menjalankan bot Telegram yang aman dan persisten, tapi dia tidak bisa menutupi kesalahan konfigurasi dasar di awal.
Pertanyaan Umum
Hermes CLI untuk sesi interaktif di terminal. Hermes Gateway adalah lapisan yang menerima pesan dari Telegram, menyimpan session per user, menerapkan command approval, dan bisa jalan sebagai service 24/7. Tanpa gateway, bot Telegram cuma bisa menerima pesan tanpa routing atau approval.
Tidak otomatis. Session default disimpan di memory. Agar session tetap hidup setelah restart, lo harus mengaktifkan session persistence dan mengarahkan storage ke direktori atau volume yang bertahan, misalnya di Docker volume atau path khusus di VPS.
Hanya untuk command yang masuk kategori sensitif. Command baca data atau fetch informasi tetap jalan otomatis. Approval cuma muncul untuk aksi yang berisiko seperti delete, write external, atau shell execution. Jadi alur rutin tetap cepat, tapi safety net tetap ada.
Docker memberi isolasi antara runtime bot dan sistem host. Jika ada prompt injection atau command yang mencurigakan, dampaknya terbatas di container. Container juga memudahkan rebuild dan reset tanpa mengorbankan VPS utama atau konfigurasi systemd.
Bergantung pada frekuensi percakapan dan cron internal yang lo jalankan. Session persistence membantu karena context tidak perlu di-refresh terus. Command approval juga mencegah token terbuang untuk prompt yang tidak perlu. Tambahkan threshold harian dan notifikasi agar tidak ada kejutan billing. --- Setelah CLI dan cron sudah jalan, Hermes Gateway adalah lapisan yang bikin bot benar-benar tinggal di Telegram. DM pairing, session persistence, command approval, systemd di VPS Sumopod, dan Docker sandbox bukan cuma tambalan, tapi arsitektur yang bikin otomasi bisa diandalkan 24/7 tanpa harus gua pegang terus. Kalau lo baru mulai, setup yang benar dari awal jauh lebih murah daripada memperbaiki kerusakan di tengah jalan.
Butuh Bantuan Implementasi?
Saya membantu founder dan tim membangun sistem operasi yang bisa jalan tanpa pengawasan konstan.
Hubungi Saya