Paano I-access ang Hermes Agent sa Phone
I-access ang Hermes agent sa VPS gamit ang Tailscale, public HTTPS endpoint, o SSH. Alamin kung paano bawiin ang access kapag nawala ang phone.
Tatlong paraan para ma-access ang iyong Hermes agent mula sa phone
Para ma-access ang iyong Hermes agent mula sa phone, ginagamit mo ang web dashboard nito. Ang tunay na desisyon ay kung ano ang inilalagay sa harap ng dashboard. Ang unang option ay private mesh network, kung saan sa Tailscale address lamang nakikinig ang dashboard at walang port na direktang nakaharap sa internet. Ang ikalawang option ay public endpoint sa likod ng reverse proxy na may TLS (transport layer security) at login. Sa ganitong setup, ang login na iyon lang ang nagpoprotekta sa terminal na nagbibigay ng access sa server mo. Ang ikatlong option ay SSH (secure shell) mula sa isang terminal app. Ito ang nangangailangan ng pinakakaunting setup ngunit nagbibigay ng pinakamalawak na access.
Nagsisimula ang guide na ito kung saan nagtatapos ang pagpapatakbo ng Hermes agent sa sarili mong VPS. Naka-install na ang agent, tumutugon na ito sa command line, at gusto mo na itong ma-access mula sa phone mo.
Ang mga command sa ibaba ay isinulat para sa tag na v2026.8.3, na inilabas noong 3 August 2026 at tinukoy bilang v0.20.0 sa release notes. Madalas maglabas ng bagong bersyon ang Hermes, kaya i-pin ang machine sa isang tag sa halip na sundan ang main. Tumatanggap ng commit ang installer:
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash -s -- --commit 3c27eb6234bf
hermes --versionIpinapakita ng hermes --version kung ano talaga ang naka-install. Ikumpara ito sa tag bago ka magtiwala sa anumang flag sa page na ito.
Ano ang kasama sa repository, at ano ang hindi
Walang iOS o Android app sa Hermes repository. Ang native client ay hermes desktop (alias na hermes gui), isang Electron application para sa macOS, Windows, at Linux. Maaari itong kumonekta sa remote agent sa halip na sa local agent: itakda ang remote URL sa http://<server-address>:9119 sa Settings sa ilalim ng Gateway, o i-export ang HERMES_DESKTOP_REMOTE_URL=http://<server-address>:9119 bago ito ilunsad. Nalulutas nito ang paggamit mula sa pangalawang laptop. Wala itong ginagawa para sa phone.
Ang ginagamit mo mula sa phone ay hermes dashboard, ang browser interface. Pinamamahalaan nito ang configuration, sessions, cron jobs, skills, logs, at messaging platforms, at may naka-embed na terminal: inilulunsad ng server ang hermes --tui sa likod ng PTY (pseudo-terminal) at ipinapadala ang output nito sa page. Sa makitid na screen, nagiging slide-over panel ang session switcher, kaya nananatiling maayos ang layout sa phone.
Bilang default, nakikinig ang dashboard sa 127.0.0.1:9119 at nagbubukas ng browser tab sa server mismo. Hindi ito kapaki-pakinabang sa headless VPS (virtual private server). Simulan ito nang hindi nagbubukas ng browser, at tingnan ang socket:
hermes dashboard --no-open
ss -lntp | grep 9119Ang listener sa 127.0.0.1:9119 ay maa-access lamang mula sa server. Ang listener sa 0.0.0.0:9119 ay maa-access mula sa bawat network na kinabibilangan ng machine, pati na ang public network. Tinutukoy ng iisang linyang iyon kung gaano ka kalantad, kaya basahin ito sa halip na basta ipagpalagay.
Option 1: isang private mesh gamit ang Tailscale
Piliin ito maliban kung may partikular kang dahilan para hindi ito gamitin. Ang Tailscale ay isang mesh VPN (virtual private network) na nakabatay sa WireGuard. Bawat device na ie-enrol mo ay magkakaroon ng stable na address at direktang makikipag-ugnayan sa iba pang device. Sasali ang phone mo sa parehong mesh, kaya hindi na kailangang magbukas ng public port ang dashboard.
Sa server:
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
tailscale ip -4I-install ang Tailscale app sa phone at mag-sign in gamit ang parehong account. Pagkatapos, ililista ng tailscale status sa server ang phone ayon sa pangalan nito. I-bind ngayon ang dashboard sa address na ipinakita ng tailscale ip -4:
hermes dashboard --host 100.101.102.103 --port 9119 --no-openKapag nag-bind sa mesh address sa halip na sa 0.0.0.0, ang listening socket ay nasa Tailscale interface lamang. Walang makikita ang port scan sa public IP address mo sa port 9119 dahil walang nakikinig doon, kaya hindi na firewall lamang ang iyong proteksyon. Kumpirmahin itong muli gamit ang ss -lntp | grep 9119.
Tinutukoy rin ng bind address ang authentication, at ito ang bahaging madalas hindi napapansin. Sa 127.0.0.1, kapag walang naka-configure na public URL, walang login ang dashboard. Sa anumang ibang address, mandatory ang auth gate, at kapag walang naka-configure na provider, tatangging magsimula ang server. Tinatawag ito ng project na failing closed. Patakbuhin ito nang interactive sa unang pagkakataon. Mag-aalok ito na mag-set up ng username at password agad, at ise-save ang mga ito bilang dashboard.basic_auth sa ~/.hermes/config.yaml. Maaari mo ring i-configure ang parehong provider sa pamamagitan ng ~/.hermes/.env, gaya ng ipinapakita sa sariling working example ng project:
HERMES_DASHBOARD_BASIC_AUTH_USERNAME=you
HERMES_DASHBOARD_BASIC_AUTH_PASSWORD_HASH=scrypt$16384$8$1$...
HERMES_DASHBOARD_BASIC_AUTH_SECRET=a-long-random-stringI-generate ang secret na iyon gamit ang openssl rand -hex 32 at huwag na itong baguhin. Ginagamit ito para i-sign ang session cookie, kaya kapag binago mo ito, masa-sign out ang bawat device. Nasa parehong file ang iyong model API keys, kaya panatilihin itong private gamit ang chmod 600 ~/.hermes/.env.
Suriin ang gate mula sa ibang machine sa mesh bago ka umasa rito:
curl -s http://100.101.102.103:9119/api/status | jq '.auth_required, .auth_providers'Ang true na sinundan ng ["basic"] ay nangangahulugang naka-enable ang gate at ang password provider ang sumasagot. Malinaw ang sariling documentation ng project tungkol sa provider na iyon: para ito sa trusted network o VPN, at hindi ito angkop para sa dashboard na nakaharap sa public internet. Sa isang mesh, iyan mismo ang sitwasyon mo.
Para sa HTTPS sa loob ng tailnet, ipasa ang port sa Tailscale:
sudo tailscale serve --bg localhost:9119
sudo tailscale serve statusTine-terminate ng Tailscale ang TLS gamit ang certificate na inisyu para sa MagicDNS name ng machine. Dahil dito, hindi na nagbibigay ng warning ang browser at nagkakaroon ang session cookie ng Secure flag. I-enable muna ang MagicDNS at HTTPS Certificates sa DNS page ng Tailscale admin console. Basahin din ang acknowledgement doon: ang mga pangalan ng iyong machine at ang DNS name ng iyong tailnet ay ipo-publish sa public certificate transparency ledger, na maaaring basahin ng kahit sino.
Ang tunay na kapalit dito ay ang coordination server. End-to-end encrypted ang traffic sa pagitan ng phone mo at VPS, at hindi ito dumadaan sa Tailscale. Gayunman, wala sa sarili mong hardware ang account na nagpapasya kung aling mga device ang kabilang sa mesh. Kung mahalaga ito sa iyo, patakbuhin ang control plane mismo gamit ang Headscale, ang self-hosted Tailscale control server, at ituro rito ang mga client gamit ang tailscale up --login-server https://headscale.example.com. Kung mas gusto mong alisin ang mesh at mano-manong i-configure ang mga peer, ipinapaliwanag ng paghahambing ng plain WireGuard at Tailscale kung ano ang isinusuko mo.
Opsyon 2: isang public HTTPS endpoint, at ang bitag na kasama nito
Minsan ay hindi available ang mesh. Maaaring hindi ka payagang mag-install ng VPN client sa work phone. Sa ganitong sitwasyon, ilagay ang dashboard sa likod ng reverse proxy. Panatilihin ang dashboard sa loopback at hayaang si Caddy ang humawak ng certificate:
hermes.example.com {
reverse_proxy 127.0.0.1:9119
}Awtomatikong kumukuha at nagre-renew ng certificate si Caddy. Ipinapasa rin ng reverse_proxy nito ang WebSocket upgrades nang walang dagdag na directive. Kailangan ito ng embedded terminal ng dashboard. Sa nginx, kailangan mong idagdag mismo ang Upgrade at Connection headers. Saklaw ng pag-isyu ng Let's Encrypt certificate gamit ang Certbot sa nginx ang bahaging TLS ng prosesong ito. Itakda kay Hermes ang public name nito para tumuro sa tamang host ang login callbacks:
dashboard:
public_url: "https://hermes.example.com"Narito ang bitag. Nakabatay ang auth gate sa bind address, hindi sa address kung saan nagmula ang request. Sa mga kasalukuyang release, awtomatiko ring ino-on ang gate kapag ang dashboard.public_url o HERMES_DASHBOARD_PUBLIC_URL ay tumutukoy sa non-loopback host. Nangyayari ito kahit loopback ang backend. Dahil dito, ina-activate ng setting sa itaas ang gate, at hindi magsisimula ang dashboard hangga't walang naka-configure na provider. Iwanang hindi naka-set ang public_url. Kapag ang dashboard ay naka-bind sa 127.0.0.1 at nasa likod ng proxy, loopback ang nakikita nito, kaya ipinapalagay nitong hindi kailangan ang login at sini-serve nito ang sinumang pinapadaan ng proxy. Anuman ang na-configure mo, suriin kung ano talaga ang inilabas mo sa network:
curl -s https://hermes.example.com/api/status | jq '.auth_required'Kung mag-print ito ng false, isang URL lang ang layo ng internet mula sa terminal sa server mo. Walang exploit na kailangan, at walang lalabas na reklamo sa logs. May 2 paraan para ayusin ito, at dapat ay mayroon kang kahit 1 sa mga ito. Ilagay ang authentication sa proxy gamit ang Authentik bilang self-hosted single sign-on provider sa unahan nito sa pamamagitan ng forward auth, o i-configure ang sariling OIDC (OpenID Connect) provider ng dashboard:
HERMES_DASHBOARD_OIDC_ISSUER=https://auth.example.com/application/o/hermes/
HERMES_DASHBOARD_OIDC_CLIENT_ID=hermes-dashboard
HERMES_DASHBOARD_OIDC_SCOPES="openid profile email"Kahit tama ang pagkaka-configure, may pinakamababang antas ng panganib ang opsyong ito na hindi mo na maibaba. Ang public login page ay page na maaaring maabot at atakehin ng kahit sino. Sa likod nito ay shell sa iyong VPS. Masyadong manipis na proteksiyon ang username at password lamang. Kaya itinataguyod ng docs ang OAuth o OIDC para sa public binds. Lagyan ng rate limit ang login, panatilihing sarado ang ufw sa lahat maliban sa proxy ports at SSH, at paminsan-minsang basahin ang access log.
Option 3: SSH at mosh mula sa mobile terminal
Pinakamadali itong paraan: mag-install ng terminal app sa phone, i-load dito ang isang SSH key, at gamitin ang sariling text interface ng agent.
ssh you@vps.example.com
tmux new -A -s phone
hermes --tuiAng tmux new -A -s phone ay kumokonekta sa session na tinatawag na phone, o gumagawa nito kung wala pa, kaya patuloy na tumatakbo ang agent kapag naputol ang connection at babalik ka sa parehong lugar sa susunod. Pareho ang pattern sa ginagamit para sa pagpapatakbo ng Claude Code mula sa phone.
Hindi komportable ang plain SSH sa mobile network dahil namamatay ang connection kapag nagbago ang address ng phone o nag-sleep ito. Inaayos ito ng Mosh. Gumagana ito sa UDP (user datagram protocol) at sini-sync ang terminal state sa halip na byte stream, kaya nagpapatuloy ang session habang lumilipat mula Wi-Fi papunta sa cellular:
sudo apt install -y mosh
sudo ufw allow 60000:61000/udpSa phone, patakbuhin ang mosh you@vps.example.com. Sinisimulan ng Mosh ang mosh-server sa pamamagitan ng kasalukuyan mong SSH login, at pagkatapos ay inililipat ang session sa isang UDP port sa pagitan ng 60000 at 61000. Kaya iyon ang range na kailangang buksan. Isang sariling port lamang ang kailangan ng bawat session, kaya sa server na kakaunti ang sabay-sabay na session, maaari kang magbukas ng mas maliit na range, gaya ng 60000 hanggang 60010.
Simple ang security cost. Ang SSH session ay isang shell, at magagawa ng shell ang lahat ng pinapayagan sa account na iyon. Dahil dito, ang approval prompts ng agent ang huling hadlang sa pagitan ng nanakaw na unlocked phone at ng mga file mo. Gumamit para rito ng dedicated non-root account, key lamang, at basahin muna ang pag-hardening ng SSH sa isang VPS bago maglagay ng key sa device na palagi mong dala.
Ano ang nasisira sa mobile network
Apat na bagay, at wala sa mga ito ang bug na maaayos sa configuration.
Awtomatikong nagla-log out ang dashboard habang hindi mo ito tinitingnan. Depende kung gaano ito kabilis sa login provider. Ang username at password provider ay nag-iisyu ng access token na default na tumatagal nang 12 oras. Itinatakda ito ng session_ttl_seconds sa ilalim ng dashboard.basic_auth, pero kinokontrol lamang ng value na iyon kung gaano kadalas nagre-refresh ang dashboard sa background, hindi kung gaano katagal kang mananatiling naka-sign in. Sa bawat refresh, gumagawa ng bagong 30 day refresh token, kaya tumatagal ang password login hanggang lumipas ang 30 araw nang walang refresh. Tinatapos din ito ng backend restart kapag hindi naka-set ang HERMES_DASHBOARD_BASIC_AUTH_SECRET, dahil bumubuo noon ang Hermes ng bagong signing key sa bawat pagsisimula nito. Ang Nous Portal OAuth provider ay nag-iisyu ng access token na may 15 minute TTL (time to live) at nire-renew ito sa background gamit ang refresh token na umiikot sa bawat paggamit. Dahil dito, hindi ka ibinabalik sa /login ng nag-expire na access token lamang. Ang nagdudulot nito ay pagkawala ng refresh session. Sa releases bago ang v0.21.3 (tag v2026.9.14, inilathala noong 14 September 2026), maaaring sabay-sabay magpadala ng ilang request ang phone kapag bumalik ito mula sa background. Maaari nitong i-replay ang katatapos lang na na-rotate na refresh token, ma-trigger ang reuse detection ng provider, at ma-revoke ang buong session. Pagbalik mo, login screen na ang makikita mo at mawawala ang anumang tina-type mo. Sa v0.21.3, pinagsasaluhan na ng mga request na iyon ang iisang refresh. Sa panig ng Nous Portal, ine-extend na ngayon ng refresh session ang 30 day window nito sa bawat pag-rotate, pero tinatapos pa rin ito ng 30 idle days. Kung mananatili ka sa v2026.8.3 pin mula sa itaas ng page na ito, asahan ang paminsan-minsang forced login. Walang nasira. Mag-sign in muli.
Hindi nananatili ang embedded terminal kapag nasa background ang tab. Nagso-spawn ang server ng TUI (text user interface) sa likod ng isang PTY at maayos itong nire-reap kapag nagsara ang tab. Kapag binuksan itong muli, nagso-spawn ito ng bago. Dina-discard ng mobile browser ang mga background tab upang mag-reclaim ng memory, kaya matatapos ang terminal kapag lumipat ka sa ibang app nang sapat na katagal. Ligtas ang chat history mo dahil naka-store ang mga session sa server at ipinapakita pa rin ang mga ito ng hermes sessions list. Hindi maaaring i-reattach ang terminal mismo. Kung kailangan mo ng session na nananatili, gumamit ng tmux sa SSH.
Tahimik na namamatay ang mga idle connection. Ibinabagsak ng mobile carrier ang mga idle TCP connection upang mag-reclaim ng mga entry sa NAT (network address translation) table. Halos tuluyang humihinto ang phone sa pag-asikaso ng network kapag naka-off ang screen. Karaniwang patay na ang WebSocket na matagal nang walang activity kapag in-unlock mo ang phone, at muling kumokonekta ang page pagkatapos mo lamang itong i-touch. Ito ang dahilan kung bakit mas maayos sa phone ang mosh kaysa SSH: wala itong connection na maaaring mawala.
Walang nagtutulak ng notification. Hindi kayang gisingin ng dashboard o ng SSH session ang phone mo. Walang Hermes app sa device, kaya walang path papunta sa push service ng platform. Kapag natapos ang isang matagal na agent run, malalaman mo lamang sa susunod na pagtingin mo.
Dumaraan ang mga notification sa messaging gateway
Ang solusyon sa huling problemang iyon ay ang gateway. Ibang paraan ito ng pagkonekta sa agent. Ikinokonekta ng hermes gateway ang agent sa mga messaging platform gaya ng Telegram, Discord, Slack, WhatsApp, Signal, at email. Pagkatapos, makikipag-usap ka sa agent sa loob ng app na mayroon nang push channel sa iyong phone, humahawak na ng background delivery, at kayang magpatuloy kapag nawawala ang network.
hermes gateway setup
hermes gateway install
hermes gateway statusNirerehistro ng hermes gateway install ang gateway bilang systemd service upang awtomatiko itong bumalik pagkatapos ng reboot. Maaaring patakbuhin ng gateway stage ng installer ang hakbang na iyon para sa iyo. Ngunit walang unit na ginagawa ang installer para sa hermes dashboard, kaya hindi awtomatikong babalik ang dashboard pagkatapos ng restart. Gumawa ng unit para sa bawat component na ginagamit mo. Ang pagsulat ng systemd services at timers sa isang VPS ay naglalaman ng mga tagubilin para sa mismong file.
Maaari ring magpadala ng resulta ang isang scheduled job sa parehong paraan, kahit walang kasamang conversation:
hermes send -t telegram -s "Backup report" -f /home/you/report.txtDeny by default ang authorization dito. Kapag walang itinakdang allowlist at hindi naka-set ang GATEWAY_ALLOW_ALL_USERS, tatanggihan ang bawat user. Ito ang tamang panimulang configuration. Ilagay sa ~/.hermes/.env ang mga account na gusto mong payagan:
TELEGRAM_ALLOWED_USERS=123456789
GATEWAY_ALLOWED_USERS=123456789Maaari ka ring gumamit ng code-based pairing sa halip na mag-paste ng numeric ID. Ito ang default para sa mga chat-style DM platform. Maaari mo itong itakda nang tahasan gamit ang unauthorized_dm_behavior: pair sa ~/.hermes/config.yaml. Makakatanggap ng walong-character na code ang isang hindi kilalang account na magpapadala ng mensahe sa agent. Walang ibang mangyayari hanggang sa ma-approve mo ito:
hermes pairing list
hermes pairing approve telegram ABC12DEF
hermes pairing revoke telegram 123456789Mag-e-expire ang mga code pagkalipas ng isang oras. Maaaring humiling ang isang user ng code isang beses kada sampung minuto. Limang failed attempt ang magla-lock out sa account na iyon.
Paglimita sa pinsalang maidudulot ng nanakaw na phone
Ang phone na makaka-access sa iyong agent ay phone na makakapagpatakbo ng mga command sa server mo, at nawawala ang mga phone. Magpasya ngayon kung ano ang puwedeng gawin ng taong may hawak nito.
Panatilihing naka-on ang approvals. Ang approvals.mode ay naka-default sa smart, na humihiling sa isang auxiliary model na suriin ang risk at awtomatikong mag-approve lamang ng mga command na mababa ang risk. Ang pag-set nito sa off ay katumbas ng pagpapatakbo ng lahat gamit ang --yolo, at ginagawa ito ng HERMES_YOLO_MODE=1 sa pamamagitan ng environment. Huwag magdala ng phone na kumokonekta sa agent habang nasa ganoong state. I-set ang approvals.cron_mode: deny upang hindi makapag-approve ang mga scheduled job para sa sarili nila habang natutulog ka.
approvals:
mode: smart
cron_mode: denyLimitahan ang saklaw na maaaring mapasama ng agent. Ang terminal.backend: docker ay nagpapatakbo ng mga command sa loob ng container na nag-aalis ng lahat ng Linux capabilities maliban sa maikling listahan, nagse-set ng no-new-privileges, at naglilimita sa bilang ng mga proseso. Dahil dito, ang container ang nagiging boundary sa halip na prompt. Itinatakda ng terminal.cwd ang working directory. Nililimitahan ng HERMES_WRITE_SAFE_ROOT ang write_file at patch sa mga directory na pinangalanan mo, at bina-block ang pagsusulat sa labas ng mga ito nang walang approval na maaaring mag-override rito.
export HERMES_WRITE_SAFE_ROOT=/home/you/projects:/home/you/.hermesBina-block na ng Hermes ang pagsusulat sa ~/.ssh, ~/.aws, ~/.kube at /etc/sudoers, pati sa sarili nitong secret stores gaya ng ~/.hermes/.env. Bina-block ang pagbasa sa mga file na .env ng project na nasa ibang lokasyon sa disk, pero nananatiling puwedeng sulatan ang mga ito. Tinatanggihan din nito ang isang mahigpit na listahan ng mga mapanirang command, anuman ang iyong approval settings. Ituring ito bilang pinakamababang proteksiyon, hindi bilang buong plano mo. Patakbuhin ang agent bilang ordinaryong user, hindi kailanman bilang root. Pareho ang prinsipyong ito sa anumang coding agent na iniiwang tumatakbo nang walang nagbabantay, at mas detalyadong ipinapakita ito sa ligtas na pagpapatakbo ng Claude Code sa isang VPS.
Isulat muna ang mga hakbang sa pag-revoke bago mo kailanganin ang mga ito. Ang pag-remove ng device sa Tailscale admin console ay agad na pumuputol sa mesh access. Ang pagpapalit ng HERMES_DASHBOARD_BASIC_AUTH_SECRET at pag-restart ay nag-iinvalidate sa bawat dashboard session sa lahat ng device, dahil nilalagdaan ng value na iyon ang session cookie. Ang pag-delete sa public key ng phone mula sa ~/.ssh/authorized_keys ay nagtatapos sa SSH access. Inaalis ng hermes pairing revoke telegram <user-id> ang isang messaging account. Kung may hawak ang device ng anumang makakabasa sa provider keys mo, i-revoke ang mga ito gamit ang hermes auth logout <provider> at gumawa ng mga bago sa upstream provider.
Suriin ang resulta sa halip na basta ipagpalagay na maayos ito. Ang mga ito ay mga command na dapat patakbuhin sa sarili mong box, at nakadepende sa setup mo ang ilalabas ng mga ito:
tailscale status
hermes pairing list
hermes logs gateway -n 100
hermes status --deepNasa ~/.hermes/logs/ ang mga log. Basahin ang mga ito pagkatapos ng isang insidente, at paminsan-minsan kahit walang naganap na insidente.
FAQ
May opisyal bang Hermes mobile app para sa iOS o Android?
Wala. Naglalabas ang Hermes repository ng command line interface, web dashboard, at Electron desktop client para sa macOS, Windows at Linux. Walang first-party iOS o Android build. Sa telepono, gamitin ang web dashboard sa browser, isang SSH client, o isang messaging platform na nakakonekta sa pamamagitan ng hermes gateway. May mga third-party mobile client, ngunit third-party code ang mga ito na may hawak na credentials para sa iyong agent, kaya basahin ang source bago mag-install ng alinman sa mga ito.
Bakit nagla-log out ang Hermes dashboard sa telepono ko?
Nakadepende ito sa login provider. Ang Nous Portal OAuth provider ay nagbibigay ng access token na may 15 minute TTL at nire-renew ito sa background gamit ang rotating refresh token, kaya hindi ka awtomatikong ipinapadala sa /login kapag nag-expire lamang ang access token. Sa mga release bago ang v0.21.3 (tag v2026.9.14), maaaring magpadala ang teleponong bumabalik mula sa background ng ilang request nang sabay-sabay, i-replay ang katatapos lang na na-rotate na refresh token, at ma-revoke ang buong session, kaya kailangan mong mag-login muli. Inaayos ito ng v0.21.3, ngunit nag-e-expire pa rin ang refresh session na idle nang 30 days. Ang username at password provider ay may default na 12 hour access token, na itinatakda ng session_ttl_seconds. Kinokontrol lamang nito kung gaano kadalas nagre-refresh sa background ang dashboard. Nire-renew ito sa pamamagitan ng 30 day refresh token na ibinibigay muli sa bawat refresh, kaya hindi nagtatapos ang password login pagkalipas ng 12 hours. Sa provider na ito, itakda ang HERMES_DASHBOARD_BASIC_AUTH_SECRET sa isang stable na random value. Kapag wala ito, bumubuo ang Hermes ng bagong signing key sa bawat pagsisimula, kaya nilo-log out ka sa bawat restart.
Maaari ko bang ilagay nang ligtas sa public internet ang Hermes dashboard?
Tanging kung ikaw mismo ang nag-verify ng authentication. Awtomatikong ino-on ang auth gate batay sa bind address. Sa mga kasalukuyang release, ino-on din ito kapag ang dashboard.public_url ay tumutukoy sa non-loopback host. Kaya ang dashboard na naka-bind sa 127.0.0.1 at nasa likod ng reverse proxy na walang nakatakdang public URL ay hindi humihingi ng login sa internet. Patakbuhin ang curl -s https://your-host/api/status | jq '.auth_required' at basahin ang output. Gumamit ng OAuth o OIDC sa halip na username at password, dahil sinasabi sa project documentation na para sa mga trusted network at VPN ang password provider. Ganap na iniiwasan ng private mesh ang isyung ito, kaya ito ang mas mainam na default.
Kailangan ko ba ng Tailscale account, o maaari kong i-self-host ang control plane?
Maaari mo itong i-self-host. Ang Headscale ay isang open implementation ng Tailscale coordination server, at kumokonekta rito ang mga opisyal na Tailscale client gamit ang tailscale up --login-server https://headscale.example.com. Ikaw ang magmamay-ari sa listahan ng mga device na pinapayagang makapasok sa mesh. Ang kapalit nito ay ikaw ang magpapatakbo at magba-back up ng server na iyon. Habang down ito, hindi ka makakapag-enrol o makakapag-authenticate muli ng device.
Paano ako makakatanggap ng notification sa telepono kapag tapos na ang agent sa isang job?
Gamitin ang messaging gateway. Walang paraan ang dashboard at SSH para gisingin ang telepono, dahil walang Hermes app sa device na tatanggap ng push notification. Ikonekta ang agent sa Telegram, Signal, Discord, o ibang suportadong platform gamit ang hermes gateway setup, pagkatapos ay hayaan ang sariling app ng platform na mag-deliver. Maaari ring mag-push ang isang cron job ng iisang mensahe gamit ang hermes send -t telegram -s "Job done" -f /path/to/report.txt, na nagde-deliver nang hindi tinatawag ang model.