Hospedagem estática e SPA
Seu site no ar com um comando. Sem YAML.
Você já buildou. Falta publicar — e é aí que aparecem o workflow, o bucket, o DNS e o certificado. O Hoster pula essa parte: um comando, HTTPS automático, e a rota /qualquer-coisa da sua SPA não dá 404. Com servidor MCP, se você trabalha com agente.
Antes e depois
Publicar não deveria ser
UM PROJETO.
Escrever o workflow, criar o bucket, apontar o DNS, emitir o certificado, descobrir por que /dashboard dá 404 no reload. Uma tarde inteira para um site que já estava pronto na sua máquina.
- Sem arquivo de workflow
- Sem bucket para configurar
- Sem certificado para emitir e renovar
- Sem regra de rewrite para a sua SPA
A CLI inteira
Não temos site de documentação.
Temos dois comandos — e eles são o produto inteiro.
1 · Entrar
Uma chave, uma vez
hoster login hk_sua_chave, e pronto. A chave fica salva em ~/.hoster-config.json — você não digita isso de novo. Sem instalar nada: bunx @ciromaciel/hoster-cli.
2 · Publicar
hoster deploy --dir ./dist
É o comando inteiro. Zipa, envia e devolve a URL do site no ar com HTTPS. Não há passo três.
3 · As flags
São quatro. Não há uma quinta.
A CLI inteira: --project define o subdomínio, --dir o que subir, --main a entrada e --token o acesso em CI/CD. Todas têm padrão. Sem arquivo de configuração, sem hoster.config.js, sem convenção escondida.
4 · CI/CD
O mesmo comando, no workflow
Sem action própria pra instalar, sem plugin. É a mesma linha que você roda no terminal, com --token vindo do secret do repositório.
O que muda no dia a dia
Quatro coisas que você não
precisa mais resolver sozinho.
SPA
A rota do seu app não dá 404
Requisição sem extensão de arquivo cai no seu index.html, com o histórico intacto. É o comportamento padrão — não é uma configuração que você precisa descobrir.
HTTPS
Certificado que você não configura
Subdomínio já vem com SSL. Domínio próprio: aponta o CNAME e a Cloudflare for SaaS emite. HTTP vira HTTPS com 301, sempre.
Configuração
Trocar a API_URL sem rebuildar
As variáveis são injetadas no HTML no instante em que ele é servido. Troca no painel, recarrega a página, acabou. Sem pipeline, sem novo build, sem redeploy.
Cache
Três estratégias, uma escolha
development enquanto você mexe, balanced para o dia a dia, extreme para assets com hash no nome. Ou escreva o header você mesmo.
Para quem trabalha com agente
Seu agente publica o site.
Sem você colar documentação antes.
1 · Conectar
Uma linha, e o agente já tem as ferramentas
É um servidor remoto: não há pacote pra instalar, nem processo pra manter rodando. Sem chave no comando: o cliente recebe 401, descobre o servidor de login sozinho e abre o navegador para você aprovar.
$ claude mcp add --transport http \
hoster \
https://hoster.worker.myinfrastructure.click/mcp
→ 401 WWW-Authenticate
→ descobre o servidor de login
→ você aprova no navegador
✔ Connected · 16 tools2 · Pedir
Em português, não em curl
O agente descobre os projetos, lê o estado e executa. Você não cola documentação nem explica a ordem dos passos.
Você: "aponta o site-cliente pra API de homologação" → hoster_get_project → hoster_set_variables ✔ sem rebuild, sem deploy
3 · Os tools
Dez. Um por intenção, não por rota.
A API tem vinte endpoints; o servidor expõe dez tools. Publicar é uma intenção, não três chamadas — e o agente não precisa saber a ordem.
list_projects get_project check_name check_domain set_variables set_cache set_domain purge_cache deploy_ticket deploy_status list_deployments rollback audit_project delete_project
4 · Publicar
Uma frase, e o site está no ar
O agente pede o ticket, roda o comando e confirma. Os arquivos vão direto do seu disco para o Hoster — eles não passam pelo modelo, então publicar um site não consome o seu contexto. O ticket vale para um projeto, uma vez, quinze minutos. Apagar projeto exige confirmação explícita.
Você: "publica a pasta dist no site-novo"
→ hoster_deploy_ticket ✔ criado
bunx @ciromaciel/hoster-cli push
ht_a1b2… --dir ./dist
→ hoster_deploy_status ✔ no ar
https://site-novo.hoster.myinfrastructure.click5 · Nenhuma chave no arquivo
Você aprova no navegador
O conector não guarda segredo nenhum: o cliente descobre o Infrastructure Auth sozinho a partir do 401, você autoriza no navegador e o token fica com ele. E o escopo continua valendo — um token de leitura nem enxerga as ferramentas que apagam.
$ claude mcp add --transport http \
hoster \
https://hoster.worker.myinfrastructure.click/mcp
→ autorize no navegador
✔ Connected · 16 tools
escopo auth:read → só as 7 de leituraComparativo
Você já buildou o site.
O que falta é só colocar no ar.
Bucket + CDN na mão
S3, DNS e certificado, você montando
Workflow de deploy
Você escreve
Bucket e permissões
Você configura
Certificado SSL
Você emite e renova
Rota da SPA
Você resolve o 404
Fatura
Dólar, com câmbio
Antes do primeiro acesso
Uma tarde
+ manutenção que não é do seu produto
Hoster
Dois comandos, e o site está no ar com HTTPS. Publicar deixa de ser um projeto à parte.
- Dois comandos: login e deploy
- Nenhum arquivo de configuração
- SSL automático, inclusive em domínio próprio
- Fallback de SPA ligado por padrão
- Variáveis de ambiente sem rebuild
- Fatura em real, sem exposição a câmbio
A CLI inteira
2
comandos: login e deploy. Não há um terceiro.
Preço
3, 9 ou 99 projetos
Já que a porta está aberta
Subiu o site. E o login?
Uma conta e um painel para operar os quatro. Quem acabou de publicar um site normalmente precisa de login em seguida — e depois de arquivos e de cobrança.
- Auth — login, sessões e organizações em 3 linhas de React
- Storage — arquivos e uploads dos seus usuários
- Payments — assinaturas e cobrança em real
- Travou? Você fala com quem escreveu o código, pelo WhatsApp
Dois comandos. Sem YAML.
Se você travar em algum passo antes de ver o site no ar, a culpa é nossa — e a gente quer saber qual foi o passo.
FAQ
As perguntas que a gente prefere responder antes
Seu caso é um dos que a gente não atende?
Fala direto com engenharia. Se o Hoster não serve para o que você precisa, a gente diz na hora — e aponta o que serve.