Voltar ao Blog
HermesTailscaleSelf-HostingNetworking

Hermes Agent + Tailscale: Acesso Remoto Seguro

Acesse um Hermes Agent auto-hospedado de qualquer lugar sem abrir portas. Instale o Tailscale no host e nos seus dispositivos e use a porta 8642 pela tailnet.

Por Hermify Team||8 min de leitura
Uma malha privada de nós verdes brilhantes sobre um mapa escuro, evocando uma tailnet do Tailscale conectando um host do Hermes Agent a um celular e a um notebook

Pare de expor a porta 8642 para a internet

No momento em que um Hermes Agent auto-hospedado sai do seu notebook e vai para um VPS, você tem uma decisão a tomar. O gateway escuta na porta 8642 e o instinto natural é abrir essa porta no firewall do host para que o celular, o desktop ou o app Hermes Desktop consiga chegar até ele de qualquer lugar. Funciona, e é exatamente o formato errado para um processo que guarda suas chaves de provedor, lê sua caixa de entrada e executa comandos de shell no host.

Um formato melhor é uma malha WireGuard. Instale o Tailscale no host do Hermes e em todos os dispositivos de onde você conversa com ele, autentique os dois lados na mesma tailnet e chegue no gateway em http://<hostname>:8642 a partir de qualquer um desses dispositivos, sem nenhuma regra de firewall de entrada no VPS. Nada da porta 8642 fica visível para a internet pública. O agente só é acessível para as máquinas que você entrou explicitamente na sua tailnet. Este é o setup que recomendamos para todo auto-hospedador que planeja tirar o Hermes da rede local.

O que o Tailscale realmente é

O Tailscale é uma VPN em malha construída sobre WireGuard. No lugar da clássica VPN em estrela, onde todo o tráfego passa por um concentrador central, o Tailscale estabelece túneis criptografados ponto-a-ponto entre os dispositivos da sua tailnet, usando um servidor de coordenação apenas para os pares se encontrarem. Quando dois dispositivos conseguem falar direto, eles falam. Quando não conseguem porque os dois estão atrás de NATs restritivos, os pacotes caem em relays DERP criptografados que nunca veem o texto claro.

Para uma implantação do Hermes as consequências práticas são:

  • Nenhuma regra de firewall de entrada no host. O gateway continua escutando em 0.0.0.0:8642 dentro do VPS, mas o firewall do host nunca aceita uma conexão pública nessa porta. O Tailscale se prende à interface tailscale0, que não está exposta à internet.
  • Nomes estáveis via MagicDNS. Seu host do Hermes fica acessível como http://hermes-vps:8642 a partir de qualquer par da tailnet, independentemente do IP do VPS por baixo.
  • Sem gestão de chaves. Cada dispositivo é autenticado pelo seu provedor SSO (Google, GitHub, Okta, Apple ou um endpoint OIDC). Adicionar um celular novo ou remover um roubado é uma operação de dois cliques no console de administração do Tailscale.
  • Grátis para uso pessoal. O plano Personal cobre até 6 usuários e dispositivos ilimitados sem custo, o que cabe confortavelmente em uma implantação de Hermes de um único operador com alguns clientes.

Se você ainda não decidiu se quer auto-hospedar o agente, leia antes auto-hospedar vs Hermes Agent gerenciado. O resto deste post assume que você já tem um Hermes Agent em Docker rodando em um VPS (a receita está no guia de Hermes Agent no Docker) e agora quer chegar até ele de forma segura pelo lado de fora.

Pré-requisitos

Você precisa de:

  • Um VPS ou máquina de homelab rodando o Hermes Agent, idealmente em Docker, com o gateway ligado a 0.0.0.0:8642 dentro do contêiner.
  • Uma conta gratuita do Tailscale (o plano Personal serve).
  • Acesso SSH ao host e acesso de administração ao celular ou notebook de onde você quer conversar.
  • O firewall público do host configurado para negar a entrada da porta 8642. Se você abriu essa porta durante a instalação, feche antes de continuar. Esse é o sentido inteiro deste exercício.

Passo 1 - Instalar o Tailscale no host do Hermes

O instalador de uma linha funciona em toda distribuição Linux mainstream:

curl -fsSL https://tailscale.com/install.sh | sh

O script detecta sua distribuição, adiciona o repositório de pacotes do Tailscale e instala os binários tailscale e tailscaled. No Debian, Ubuntu, Fedora, Arch e Alpine ele escolhe o gerenciador de pacotes certo automaticamente. No macOS o equivalente é brew install tailscale; no Windows, baixe o instalador pelo site do Tailscale.

Em seguida suba o daemon e faça login:

sudo systemctl enable --now tailscaled
sudo tailscale up --ssh

A flag --ssh também habilita o Tailscale SSH, que te deixa entrar por SSH no host pela tailnet usando sua identidade SSO em vez de um par de chaves estático. Se você já tem um SSH funcionando, pode ignorar essa flag; é um upgrade opcional e reversível.

tailscale up imprime uma URL de login de uso único. Abra no navegador, autentique-se com seu provedor de identidade e o host entra na sua tailnet. Pegue o IP dela e o nome MagicDNS:

tailscale ip -4
tailscale status

Você vai ver algo como 100.64.1.5 e hermes-vps.tailnet-name.ts.net. Os dois servem como alvo do gateway.

Passo 2 - Instalar o Tailscale no celular e no notebook

Instale o app do Tailscale em cada dispositivo de onde quiser conversar:

  • iOS / Android: instale o app do Tailscale pela App Store ou Play Store, abra e entre com a mesma identidade que você usou no host.
  • macOS / Windows / desktop Linux: baixe o instalador em tailscale.com/download e faça login.

Feito o login, cada dispositivo é um par na mesma tailnet. No navegador do celular, acesse http://hermes-vps:8642/health e você deve receber o JSON de health padrão. De um notebook em outra Wi-Fi, a mesma URL continua funcionando. Nenhuma porta foi aberta no VPS.

Passo 3 - Apontar o app Hermes Desktop para o gateway remoto

Se você usa o app Hermes Desktop, configure a URL do gateway dele para o endereço da tailnet do host. Nas configurações do app, troque o http://localhost:8642 padrão por:

http://hermes-vps:8642

Para o túnel WebSocket do desktop, use o mesmo hostname com o endpoint websocket --tui. Fixe um HERMES_DASHBOARD_SESSION_TOKEN no .env do contêiner para que o desktop autentique de forma limpa contra um token estável em vez de um que rotaciona. O resto do app é agnóstico de transporte; do ponto de vista dele o gateway está em localhost, e o Tailscale cuida do roteamento.

Quando o app desktop estiver conversando com o gateway remoto, todas as superfícies habituais do Hermes (modo voz, skills, ferramentas MCP, tarefas agendadas) funcionam exatamente como em uma instalação local. Veja o modo voz do Hermes Agent para entender como a voz se comporta nesse mesmo setup.

Opcional: Tailscale Funnel para HTTPS público

De vez em quando você realmente precisa de um alvo de webhook alcançável pela internet pública: um webhook do Stripe, um endpoint de slash-command do Discord, um webhook do Telegram se você não usa long polling. O Tailscale Funnel é a válvula de escape. Ele expõe uma porta local escolhida da tailnet como um endpoint HTTPS público em https://hermes-vps.tailnet-name.ts.net, com o Tailscale provisionando um certificado válido do Let's Encrypt para você.

Habilite no host:

sudo tailscale funnel 8642

O Funnel vem desligado por padrão e funciona por serviço, então você pode abrir um endpoint estreito sem destravar o gateway inteiro. Se você nunca precisar de uma URL HTTPS pública, pule este passo e mantenha o agente inteiramente dentro da tailnet. Os detalhes estão nos docs do Tailscale Funnel.

Tailscale vs Cloudflare Tunnel vs firewall e reverse proxy

Três formas de chegar a um Hermes Agent auto-hospedado pelo lado de fora, ordenadas pelo quanto você precisa pensar em cada uma:

Abordagem Exposição pública Esforço de setup Melhor para
Malha Tailscale Nenhuma Baixo Você controla todos os dispositivos de onde conversa
Cloudflare Tunnel Sim, com auth Médio Você precisa compartilhar o agente com usuários externos
Firewall + reverse proxy + auth Sim Alto Você quer o clássico Nginx na frente de tudo

O Cloudflare Tunnel é um meio-termo razoável quando sua audiência não é apenas seus próprios dispositivos, mas expõe o endpoint para toda a internet e depende do Cloudflare Access para autenticação. Firewall mais reverse proxy funciona, mas você carrega a pilha inteira: TLS, rate limits, middleware de auth, revisão de logs. O Tailscale é o caminho mais curto para um agente genuinamente privado. Conselhos de hardening para as duas opções mais expostas estão no guia de segurança do Hermes Agent.

A alternativa gerenciada

O Tailscale é a resposta certa se você está comprometido com o auto-hospedagem. Também são seis peças móveis que antes você não tinha: uma conta do Tailscale, uma dependência do servidor de coordenação, o daemon tailscaled em cada host, uma política para adicionar e remover dispositivos, nomes MagicDNS para lembrar e um inventário de dispositivos para auditar. Isso compensa em um homelab ou num final de semana curioso, e compensa menos quando o que você quer é só um agente pessoal que responda suas mensagens.

Se a meta é "um agente com quem posso conversar no Telegram de qualquer lugar" e não "operar uma malha privada de WireGuard", o caminho gerenciado é o atalho direto. Comece com o Hermify e seu Hermes Agent fica no ar como um contato do Telegram em cerca de um minuto, com memória que continua sua, sem portas para abrir e sem tailnet para cuidar. O dispositivo de onde você conversa é seu cliente do Telegram de sempre, sem configuração de VPN.

Sources

Lance seu próprio agente Hermes

Traga sua chave de API, conecte o Telegram e tenha um agente de IA que evolui sozinho no ar em 60 segundos.

Começar agora