Acesso à VPS de Desenvolvimento — dev externo¶
Referência completa para o dev externo acessar e trabalhar na VPS dev. Atualizar sempre que mudar chave, IP ou permissão.
Dados de acesso¶
| Campo | Valor |
|---|---|
| IP | 2.24.117.172 |
| Usuário | luiz |
| Porta SSH | 22 |
| Diretório home | /home/luiz/ |
SSH — configuração inicial (uma vez só)¶
1. Baixar a chave privada¶
Felipe envia a chave privada via link 1Password. Salvar o conteúdo em:
2. Ajustar permissões¶
3. Conectar¶
4. (Opcional) Alias no ~/.ssh/config¶
Com o alias: ssh vps-dev
Estrutura de pastas¶
/home/luiz/
├── gci-go-whatsapp/ ← pipeline GCI Goiás (Lara)
├── cadencia-app/ ← workers Cadência
├── pd-portal/ ← Portal PD
├── ecuro-mcp/ ← MCP integração eCuro
├── claude-dev-skills/ ← skills compartilhadas do time
├── .claude/ ← Claude Code (settings, skills)
│ ├── settings.json
│ └── skills/
├── .nvm/ ← Node.js e CLIs por usuário
└── .profile ← variáveis de ambiente (tokens via 1P)
Variáveis de ambiente (.profile)¶
Carregadas automaticamente ao conectar via SSH:
export NVM_DIR="$HOME/.nvm"
export OP_SERVICE_ACCOUNT_TOKEN="..." # 1P SA read-only (vault Hostinger VPS)
export VERCEL_TOKEN="..."
export SUPABASE_ACCESS_TOKEN="..."
export GH_TOKEN="..." # acesso org Posicionamento-Digital
Se um CLI não aparecer no PATH, rodar: source ~/.profile
CLIs disponíveis¶
Sistema (sempre disponíveis)¶
| CLI | Uso |
|---|---|
git | controle de versão |
docker / docker compose | containers (sem sudo) |
node / npm | Node.js |
python3 / pip3 / uv | Python |
gh | GitHub CLI |
op | 1Password CLI |
gemini | Gemini CLI (code review) |
tmux | sessões persistentes |
jq | parse JSON |
Por sessão (via nvm — carregar com source ~/.profile)¶
| CLI | Uso |
|---|---|
claude | Claude Code |
codex | OpenAI Codex CLI |
railway | Railway CLI |
vercel | Vercel CLI |
1Password na VPS¶
O op está instalado e autenticado com um Service Account read-only no vault Hostinger VPS. O dev externo não vê os valores — só acessa via CLI.
# Pegar credencial pelo nome do item
op item get "Nome da Key" --fields credential
# Exemplos:
op item get "Anthropic API Key" --fields credential
op item get "Supabase - gci-go" --fields credential
Se op retornar erro de autenticação: avisar Felipe para renovar o SA token.
Sessões com tmux (obrigatório)¶
Sempre abrir tmux antes de trabalhar. Se a conexão cair, o processo continua.
Atalhos dentro do tmux: - Ctrl+B, D — desconectar (sessão continua rodando) - Ctrl+B, C — nova janela - Ctrl+B, N — próxima janela - Ctrl+B, " — dividir horizontalmente
Git e Linear¶
Iniciar issue¶
Fluxo de commit e push¶
Fechar issue¶
Claude Code¶
Instalado em /home/luiz/.nvm/. Para usar:
Skills disponíveis (20):
| Skill | Quando usar |
|---|---|
/linear-start-issue | Antes de começar qualquer issue |
/linear-close-issue | Ao terminar e fazer push |
/linear-planejar-issue | Antes de iniciar issue nova (plano técnico) |
/linear-criar-issue | Criar issue nova avulsa |
/gemini-review | Code review antes do PR |
/claude-review | Code review com Opus (mais pesado) |
/codex-review | Code review com Codex |
/debug-polya | Bug difícil — framework Pólya |
/validar-deploy-vps | Validar script antes de subir |
/credencial | Pegar/salvar credenciais no 1P |
/status | Ver pendências do projeto |
/ja-fiz | Ver o que já entregou |
/log-sessao | Registrar sessão |
/registrar-incidente | Documentar erro ou aprendizado |
/handoff-sessao | Passar contexto entre sessões |
/issue-semana | Ver issues do ciclo atual |
/espelhar-repo-vps | Clonar repo privado na VPS |
/runtime-fix-review | Verificar correções em produção |
/linear-gestao-atividades | Criar múltiplas issues de projeto |
/linear-atualizar-issue | Atualizar plano técnico de issue |
Docker¶
dev externo tem acesso ao Docker sem sudo:
docker compose up -d # subir containers
docker compose down # derrubar
docker compose logs -f app # logs em tempo real
docker ps # containers rodando
docker stats # uso de recurso
Restrições¶
| O que | Motivo |
|---|---|
sudo — sem permissão | segurança; se precisar de pacote, avisar Felipe |
/home/felipe/ — sem acesso | isolamento de usuário |
VPS de produção (72.60.4.71) — sem acesso shell | dev externo não tem chave para produção |
| Credenciais em texto claro — proibido | só via op item get |
Commit direto na main — proibido | fluxo é feature/pdl-XX → PR → merge |
Firewall¶
Somente porta 22 (SSH) está aberta por padrão. Se precisar expor porta para webhook ou teste externo, pedir pro Felipe liberar via UFW.
Problemas comuns¶
| Problema | Solução |
|---|---|
| SSH não conecta | Verificar chave: ssh -i ~/.ssh/hostinger_dev_luiz luiz@2.24.117.172 -v |
CLI não encontrado (railway, claude, etc.) | source ~/.profile e tentar de novo |
op item get falha com auth error | SA expirou — avisar Felipe |
| Porta bloqueada para webhook | Pedir pro Felipe: ufw allow <porta> |
| Processo morreu ao desconectar | Sempre usar tmux antes de iniciar processo longo |
| Branch protegida, push negado | Verificar se está na branch certa (git branch) |
Contato¶
Problemas de infra ou acesso: fala com Felipe diretamente. Issues e entregas: Linear via /linear-start-issue e /linear-close-issue.
Notas Relacionadas¶
Infra/VPS-Hostinger/VPS-Dev/VPS-Dev-Documentacao-Tecnica · Infra/VPS-Hostinger/README · Time/Luiz/Manual-VPS-Dev