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.

no-store
max-age=3600
max-age=2592000

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.

bash
$ 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 tools

2 · 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.

conversa
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.

tools
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.

conversa
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.click

5 · 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.

bash
$ 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 leitura

Comparativo

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

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.