Skip to content

Latest commit

 

History

History
177 lines (134 loc) · 8.9 KB

File metadata and controls

177 lines (134 loc) · 8.9 KB

claude-vps-studio

Estúdio pessoal de estudo num VPS, orquestrado por sessões paralelas do Claude Code.

Você abre um chat com o manager pelo celular ou navegador, pede "crie uma thread sobre context windows", e ele lança uma sessão Claude isolada que conversa com você sobre o tema e gera uma página HTML rica em estilo editorial — tudo persistente, acessível de qualquer dispositivo via Remote Control.

                       ┌────────────────────────────────┐
                       │   seu navegador / celular      │
                       └───────────────┬────────────────┘
                                       │  claude.ai/code/session_xxx
                                       ▼
   ┌───────────────────────────────────────────────────────────────┐
   │  VPS (este pacote)                                            │
   │                                                                │
   │   tmux                                                         │
   │   ├── manager      ◀── orquestra threads                       │
   │   ├── thread-foo   ◀── estudo sobre foo (gera HTML em learn/)  │
   │   ├── thread-bar   ◀── estudo sobre bar                        │
   │   └── ...                                                      │
   │                                                                │
   │   docker                                                       │
   │   ├── traefik      ◀── reverse proxy + SSL automático          │
   │   └── learn        ◀── nginx servindo ~/sites/learn/public/    │
   │                                                                │
   └───────────────────────────────────────────────────────────────┘
                                       ▲
                                       │  HTTPS (Let's Encrypt)
                       ┌───────────────┴────────────────┐
                       │   learn.<seu-dominio>          │
                       └────────────────────────────────┘

Patrocínio (Hostinger)

Este projeto e o vídeo foram patrocinados pela Hostinger.

  • Link: hostinger.com/otaviomiranda
  • Cupom: OTAVIOMIRANDA
  • Benefício: OTAVIOMIRANDA+10% de desconto extra sobre o desconto do link.

Se quiser o template do Claude Code diretamente, use www.hostg.xyz/SHJQM com o mesmo cupom (OTAVIOMIRANDA).

Pré-requisitos

  • VPS Ubuntu 24.04 (testado) ou similar com apt
  • Acesso sudo (NOPASSWD recomendado pra setup unattended)
  • Domínio próprio com DNS apontando pro IP do VPS:
    • Apex: A <dominio> → IP-DO-VPS
    • Wildcard: A *.<dominio> → IP-DO-VPS
  • Portas 80 e 443 abertas no firewall (necessário pro desafio HTTP-01 do Let's Encrypt)
  • Claude CLI instalado e autenticado (claude interativo uma vez)
  • Conta Anthropic com plano que permita Remote Control (Pro/Max)

Setup

git clone https://github.com/<seu-user>/claude-vps-studio.git
cd claude-vps-studio
./setup.sh <seu-dominio> <seu-email>

Exemplo:

./setup.sh meudominio.dev contato@meudominio.dev

O script:

  1. Confere DNS, instala Docker se faltar
  2. Copia os arquivos pra ~/ (CLAUDE.md, PROMPT.md, manager/, sites/, infra/, bin/)
  3. Substitui placeholders __DOMAIN__ e __EMAIL__
  4. Cria rede docker web, sobe Traefik, sobe o site learn
  5. Sobe a sessão tmux do manager e imprime a URL pra acessar pela web

Tempo total: ~3 minutos (a maior parte puxando imagens Docker).

O que cada coisa é

Arquivo / pasta O quê
CLAUDE.md Briefing do VPS — carregado automaticamente pelo Claude Code ao iniciar em ~
PROMPT.md Prompt inicial pra colar no Claude principal quando você entrar pelo SSH
manager/CLAUDE.md Briefing do Claude "manager" — define o papel dele de orquestrar threads
bin/claude-thread Script CLI: new, list, url, peek, kill
infra/traefik/ Reverse proxy + Let's Encrypt automático
sites/_template/ Template docker-compose.yml pra novos projetos
sites/learn/ App de estudos: nginx + design system em CSS
sites/learn/STYLE.md Guia de estilo que as threads filhas seguem ao gerar páginas
sites/learn/public/prompt-caching/ Exemplo de estudo gerado (pode deletar)

Uso diário

Depois do setup, você tem 3 jeitos de interagir:

1) Pelo navegador (uso principal — celular/desktop)

Abra a URL do manager (impressa pelo setup.sh no final, ou recupere com ~/bin/claude-thread url manager). Logue na sua conta Anthropic.

Exemplos do que falar com o manager:

"crie uma thread sobre context windows"

→ Ele responde com uma URL nova. Abra essa URL em outra aba — você está numa sessão Claude isolada que vai gerar uma página em ~/sites/learn/public/context-windows/.

"lista as threads abertas"

→ Lista tudo + URLs.

"fecha a thread context-windows"

→ Mata a sessão tmux.

2) Pelo SSH + terminal (manutenção da infra)

Entre no VPS, rode claude em ~. Cole o conteúdo de ~/PROMPT.md na primeira mensagem. Esse Claude tem acesso à infra inteira — use pra: criar sites novos, mexer em Traefik, debugar containers, etc.

3) Diretamente nas threads filhas (estudo)

Cada thread tem sua própria URL claude.ai. Você abre, conversa sobre o tema, ela gera HTML em ~/sites/learn/public/<slug>/ seguindo o STYLE.md, e o resultado fica em https://learn.<seu-dominio>/<slug>/.

Customização

  • Mudar o design das páginas: edite ~/sites/learn/STYLE.md e/ou ~/sites/learn/public/assets/style.css. As threads filhas leem o STYLE.md antes de cada geração.
  • Mudar o tom do Claude: edite ~/CLAUDE.md ou ~/manager/CLAUDE.md.
  • Adicionar um site novo: copie ~/sites/_template/, edite os placeholders, docker compose up -d.
  • Idioma diferente: mude as instruções em CLAUDE.md e manager/CLAUDE.md (atualmente em PT-BR).

Troubleshooting

Sintoma Causa provável
curl: (60) SSL certificate problem Let's Encrypt ainda não emitiu. Espere 30s e tente de novo. Se persistir: cheque DNS e portas 80/443.
Manager não tem URL A sessão claude ainda está inicializando. tmux capture-pane -t manager -p mostra o estado. Espere mais 10s.
claude-thread: command not found ~/bin não está no PATH. source ~/.bashrc ou reabra o shell.
Manager pede confirmação interativa Você precisou logar no claude. SSH no VPS, claude direto, faça login, depois tmux kill-session -t manager e rode o setup de novo.

Limitações conhecidas

  • Persistência em reboot: sessões tmux morrem em reboot do VPS. Pra sobreviver, configure como systemd service (futuro).
  • Acesso compartilhado: quem tiver a URL do manager pode controlá-lo. Trate como segredo. Em ambientes sensíveis, exponha só via VPN (WireGuard).
  • Custo: cada sessão paralela consome cota da sua conta Anthropic. Threads são caras — use com parcimônia, descarte quando terminar.

Licença

MIT. Use à vontade, modifique, ensine. Se publicar uma fork ou variação, ficaria legal um crédito ao projeto original.

Origem

Este projeto nasceu de um experimento gravado em vídeo: "e se o Claude pudesse orquestrar outros Claudes pra eu estudar pelo celular?" — A arquitetura inteira foi montada em conversa com o Claude no próprio VPS.