O Hermes Desktop ligado à VPS
Ficha e sumário do guia
- Ambiente
- VPS Ubuntu com o Hermes instalado
- Referência técnica
- v0.23.1
- Conferência
- Conferido na documentação
Prepare o ambiente
Antes de começar, você precisa de:
- Hermes instalado na VPS com o usuário hermes
- Hermes Desktop no computador (macOS em Apple Silicon, Windows ou Linux)
O Hermes Desktop é um app nativo para macOS em Apple Silicon, Windows e Linux
que usa o mesmo agente da CLI e do gateway. Instalado sozinho no computador,
ele roda um Hermes local. Para trabalhar com o Hermes da VPS, o app abre uma
conexão com um processo hermes serve que fica rodando no servidor. O app não inicia
esse processo, então ele precisa estar ativo antes da conexão.
Quando o hermes serve escuta num endereço diferente do 127.0.0.1, ele
exige login. A documentação avisa que um usuário conectado consegue executar
qualquer comando com as permissões do usuário do sistema que roda o Hermes.
Por isso ela orienta deixar o servidor atrás de uma VPN e aponta o Tailscale
como a opção mais limpa.
Grave o login na VPS
Com o usuário hermes, grave no ~/.hermes/.env o nome de usuário e a
senha do login. Troque os dois valores do exemplo por valores seus:
HERMES_DASHBOARD_BASIC_AUTH_USERNAME=adminHERMES_DASHBOARD_BASIC_AUTH_PASSWORD=troque-por-uma-senha-forteEm seguida, gere um segredo fixo para as sessões continuarem válidas depois de
um reinício e restrinja a leitura do arquivo ao usuário hermes:
echo "HERMES_DASHBOARD_BASIC_AUTH_SECRET=$(openssl rand -base64 32)" >> ~/.hermes/.envchmod 600 ~/.hermes/.envAbra o .env e confira a linha do segredo. Uma versão antiga dessa receita
gravava o texto $(openssl rand -base64 32) no lugar de um valor aleatório.
Suba o servidor no endereço do Tailscale
Com a VPS e o computador na mesma rede do Tailscale, o
hermes serve pode escutar só no endereço do Tailscale da VPS. Assim, apenas
os aparelhos da sua rede alcançam a porta. Com o usuário hermes, troque
IP_TAILSCALE pelo endereço da VPS na rede do Tailscale:
hermes serve --host IP_TAILSCALE --port 9119O processo precisa continuar rodando depois que a sessão SSH termina. A
documentação indica um gerenciador de processos, como o systemd ou o tmux.
Com o tmux, a sessão segue ativa depois que você sai do SSH. Quando ele
falta, o administrador instala com sudo apt install -y tmux:
tmux new -d -s hermes-serve "hermes serve --host IP_TAILSCALE --port 9119"O tmux attach -t hermes-serve volta a essa sessão para conferir o processo.
Conecte o app ao Hermes da VPS
No Hermes Desktop, abra Settings, depois Gateways e Remote gateway. Preencha o
endereço com http://IP_TAILSCALE:9119, entre com o usuário e a senha
gravados no .env e confirme. O app reconecta e mostra as sessões do servidor.
Para conferir se o login está ativo, rode esta consulta a partir do computador. A resposta deve indicar que a autenticação é obrigatória:
curl -s http://IP_TAILSCALE:9119/api/status | jq '.auth_required, .auth_providers'Para não guardar a senha em texto puro, a variável
HERMES_DASHBOARD_BASIC_AUTH_PASSWORD_HASH aceita um hash scrypt no lugar
de HERMES_DASHBOARD_BASIC_AUTH_PASSWORD.
Confira o resultado
O Hermes Desktop conecta ao endereço da VPS em Remote gateway e mostra as sessões do servidor.
