🤖HermesBlog
Hermes Feature Guides · Parte 168/9/2026

Docker + Hermes Agent: Dua Cara Bermain

Event Hooks — Auto-Trigger at Key Moments — easy-to-understand guide based on official docs (updated 2026-08-09)

hermes-feature-16-hooks

Docker + Hermes Agent: Dua Cara Bermain

Kalau kamu pernah bertanya-tanya bagaimana Docker cocok dengan gambaran Hermes Agent, kamu berada di tempat yang tepat. Sebenarnya ada dua cara berbeda di mana keduanya bisa bekerja sama, dan penting untuk mengetahui perbedaannya sebelum kamu mulai mengetik docker run.

Dua Mode Docker

  1. Menjalankan Hermes DI DALAM Docker — agen itu sendiri berada di dalam container. Ini adalah fokus utama dari panduan ini.
  2. Docker sebagai backend terminal — Hermes berjalan di mesin host kamu, tetapi setiap perintah yang dieksekusi terjadi di dalam satu sandbox Docker yang persisten. Sandbox tersebut bertahan melintasi panggilan tool, /new, dan bahkan subagen selama proses Hermes masih hidup.

Artikel ini membahas opsi 1. Hal penting yang perlu kamu tahu: semua data kamu (konfigurasi, kunci API, sesi, skill, memori) tersimpan dalam satu direktori di host kamu, di-mount di /opt/data di dalam container. Image-nya sendiri bersifat stateless, jadi kamu bisa menarik versi baru kapan saja tanpa kehilangan pengaturan kamu.


Memulai dengan Cepat: Pengaturan Pertama Kali

Kalau ini pertama kalinya kamu melakukannya, buat direktori data dan jalankan container secara interaktif untuk menjalankan wizard pengaturan:

mkdir -p ~/.hermes
docker run -it --rm \
  -v ~/.hermes:/opt/data \
  nousresearch/hermes-agent setup

Ini akan membawamu ke wizard, yang akan meminta kunci API kamu dan menuliskannya ke ~/.hermes/.env. Kamu hanya perlu melakukan ini sekali saja. Sambil melakukannya, ini waktu yang tepat untuk mengatur sistem chat (Telegram, Discord, dll.) sehingga gateway kamu punya tempat untuk berbicara.

⚠️ Perhatian: Hindari konsol VPS berbasis browser untuk perintah instalasi ini. Beberapa penyedia (seperti Hetzner) merusak karakter khusus — : bisa berubah menjadi ;, @ dirender dengan salah, dan kunci API yang ditempel bisa rusak secara diam-diam. Selalu gunakan SSH untuk memasukkan perintah yang aman dari copy-paste. Jika kamu harus menggunakan konsol browser, ketik perintah secara manual dan periksa ulang setiap :, @, =, dan /.

Tips pro: Di dalam container, jalankan hermes setup --portal sekali — refresh token akan tersimpan di volume ~/.hermes yang ter-mount.


Menjalankan dalam Mode Gateway

Setelah dikonfigurasi, jalankan container di latar belakang sebagai gateway yang persisten:

docker run -d \
  --name hermes \
  --restart unless-stopped \
  -v ~/.hermes:/opt/data \
  -p 8642:8642 \
  nousresearch/hermes-agent gateway run

Port 8642 mengekspos server API kompatibel OpenAI dari gateway dan endpoint kesehatan. Ini opsional jika kamu hanya menggunakan platform chat, tetapi wajib jika kamu ingin dashboard atau alat eksternal menjangkau gateway.

Yang Baru: Gateway yang Diawasi

Ini perubahan besar: di dalam image Docker resmi, gateway run sekarang secara otomatis diawasi oleh s6-overlay. Jika gateway crash, ia akan restart dalam hitungan detik tanpa kehilangan container. Dashboard (jika diaktifkan) juga diawasi bersamaan dengannya.

Kamu akan melihat jejak satu baris di docker logs yang mengonfirmasi peningkatan ini. Untuk keluar dan mendapatkan perilaku lama (container keluar = gateway keluar), berikan --no-supervise atau atur HERMES_GATEWAY_NO_SUPERVISE=1. Ini berguna untuk uji smoke CI; untuk produksi, default yang diawasi jelas lebih baik.

Penghentian Paksa Loop Tool

Satu pengaturan penting untuk gateway tanpa pengawasan: tool_loop_guardrails.hard_stop_enabled default-nya false. Itu baik-baik saja untuk sesi interaktif di mana manusia bisa melihat peringatan. Tetapi dalam deployment tanpa pengawasan, peringatan saja mungkin tidak menghentikan agen yang terjebak dalam loop. Jika kamu ingin perilaku pemutus sirkuit, aktifkan di config.yaml profil kamu:

tool_loop_guardrails:
  hard_stop_enabled: true
  hard_stop_after:
    exact_failure: 5
    idempotent_no_progress: 5

Mengekspos Server API

Server API dibatasi oleh API_SERVER_ENABLED=true. Untuk mengeksposnya melampaui 127.0.0.1 di dalam container, atur juga API_SERVER_HOST=0.0.0.0 dan API_SERVER_KEY (minimal 8 karakter — buat dengan openssl rand -hex 32):

docker run -d \
  --name hermes \
  --restart unless-stopped \
  -v ~/.hermes:/opt/data \
  -p 8642:8642 \
  -e API_SERVER_ENABLED=true \
  -e API_SERVER_HOST=0.0.0.0 \
  -e API_SERVER_KEY="$(openssl rand -hex 32)" \
  -e API_SERVER_CORS_ORIGINS='*' \
  nousresearch/hermes-agent gateway run

Catatan keamanan: Membuka port apa pun di mesin yang menghadap internet adalah risiko. Jangan lakukan ini kecuali kamu sepenuhnya memahami konsekuensinya.


Menjalankan Dashboard

Dashboard web bawaan berjalan sebagai layanan s6-rc yang diawasi bersama gateway di container yang sama. Cukup atur HERMES_DASHBOARD=1:

docker run -d \
  --name hermes \
  --restart unless-stopped \
  -v ~/.hermes:/opt/data \
  -p 8642:8642 \
  -p 9119:9119 \
  -e HERMES_DASHBOARD=1 \
  nousresearch/hermes-agent gateway run

Jika dashboard crash, s6-supervise akan me-restart-nya secara otomatis setelah jeda singkat. Output-nya masuk ke docker logs <container>.


Ke Mana Log Pergi

Untuk peta routing lengkap (gateway per-profil, dashboard, boot reconciler, dan docker logs seluruh container), periksa bagian khusus di dokumentasi. Versi singkatnya: semuanya akhirnya masuk ke docker logs, tetapi dengan prefiks yang jelas sehingga kamu bisa membedakan apa itu apa.


Penutup

Docker memberi kamu cara yang bersih dan mudah di-upgrade untuk menjalankan Hermes Agent. Container-nya stateless, data kamu tersimpan aman di host, dan pengawasan s6 yang baru berarti gateway kamu tetap hidup bahkan jika crash. Baik kamu menjalankan pengaturan sederhana atau kombinasi dashboard + server API lengkap, perintah-perintah di atas membawamu ke sana dalam hitungan menit.

📖 Dokumentasi resmi

この記事は Hermes Agent のDokumentasi resmiに基づいています:Dokumentasi resmi › user-guide/features/hooks