Federado com twotrees.tech · MFA opcional via Configurações
Ouvindo
barra oculta — clique ou Ctrl+Shift+H
Sistema
Host: processos, portas, serviços, arquivos e métricas
Docker
Containers, compose, imagens, volumes e redes
Dev
Terminal, AI, documentação, grafos e VSCode
Segurança
Audit log, usuários e secrets
Apps
WhatsApp, videochamada e navegadores remotos
Operações
Jira, fila de jobs, agendamentos, deploy e git
Operação ao vivo
Dashboard
Métricas em tempo real · atualização a cada 5s
VPS Manager
Uptime
Usuários (2FA)
Último login
TLS
CPU
steal
⚠iowait
Memória
Load 1m
5m
· 15m
Uptime
Discos
carregando…
Nenhum disco reportado pelo host.
Rede (total desde boot)
↑ ↓
carregando…
Nenhuma interface de rede reportada.
Docker
Containers rodando
Projetos Compose
Imagens
Volumes/Redes
Containers recentes
Nome
Imagem
Estado
Status
Portas
carregando…
Histórico (2h)
carregando série temporal…
carregando…
CPU %
Memória %
Load 1m
Disco máximo %
Métricas
Grafana embarcado · SSO via vps-managercarregando…
📊
Grafana não respondeu
O iframe não carregou em 12s. Causas comuns:
Container observability-grafana-1 parado
Cookie de sessão do painel expirou (faça login de novo)
Traefik / rota /grafana com problema
Datasource prometheus não respondendo
Dashboards provisionados em /opt/projetos/vpsmanager/deploy/grafana/dashboards/. Pra adicionar, criar JSON novo lá — aparece no dropdown ao recarregar (↻).
🔔 Notificações
Avise-se quando algo importante acontece no servidor — jobs, métricas, agendador.
1🎯 Trigger→2⚡ Ação→3📲 Destino
Todo alerta segue o mesmo caminho: um gatilho (uma métrica que cruza um limite, ou um evento do sistema) → uma ação (a gravidade) → um destino (os canais). Crie tudo num fluxo só em + Novo alerta.
📈 Métricas ao vivo
Tudo que o site quantifica, em tempo real. Clique numa métrica para criar um limite sobre ela.
Nenhuma métrica casa com "".
🔔 Alertas
Cada alerta é um gatilho (métrica ou evento) → uma ação (gravidade) → um destino (canais). Crie tudo num fluxo só.
🔔
1Gatilhoo que dispara
valor atual:
pors
0 = re-arma assim que sair do limite
s0 = avisa uma vez só, até recuperar (recomendado)
2Açãogravidade
Alerta ativo
3Destinopara onde avisar
Nome & descrição
Trigger → Ação → Destino, tudo num alerta só.
🔔
Nenhum alerta ainda
Clique numa métrica acima, ou crie do zero: escolha o gatilho, a gravidade e o destino.
quandopor→sem destino
quando→sem destino
📲 Destinos
Para onde os alertas chegam: WhatsApp, Telegram, Email, Webhook ou o sino 🔔 do site.
📭
Nenhum destino configurado
Adicione um canal (ex.: um número de WhatsApp) para receber os avisos. O sino do site funciona na hora, sem configuração.
·
1Tipo de destino
Escolha por onde as notificações vão.
Sem configuração — funciona na hora e aparece no sino 🔔 da barra inferior.
Destino ativo
Depois de salvar, escolha este destino ao criar um alerta.
🕑 Eventos recentes
Tudo que passou pelo sistema de notificações — com ou sem regra.
Nenhum evento ainda. Dispare um job (ex.: um shell com erro) para ver aqui.
Caminho legado para alertas do Prometheus/Alertmanager (loopback → WhatsApp via WAHA). É separado dos canais acima — a maioria deve usar os canais. Mantido só para integração com Prometheus.
Sem permissão pra editar (só o usuário primário vê esta seção) ou config carregando.
Enviar alertas do Prometheus
Containers
total · ·
selecionado(s)aplicar:
Portas:
ID Criado
Falha ao carregar do Docker
Nenhum container
Docker Compose
projetos detectados
Novo projeto Compose
serviços
Nenhum projeto Compose
Saída da última ação
Imagens Docker
· total:
selecionada(s)
Repositório
Tag
ID
Tamanho
Criado
Uso
Nenhuma imagem
Volumes
volumes
Nome
Driver
Mountpoint
Criado
Projeto
Redes Docker
redes
IDScopeInternalSubnet
Manutenção Docker
Prune — limpar recursos não usados
Pull — baixar imagem
Process Manager
processos •
live
CPU = % da máquina (sobre cores) ·
total
· steal ⚠
PID
PPID
Nome
Usuário
CPU % /máquina
MEM %
RSS
Status
Cmdline
Ações
nenhum processo com esses filtros
PID 1, sshd, e o próprio vps-manager são protegidos. Usuários não-primary só podem sinalizar processos que possuem.
Portas e conexões
ss -tlnp / ss -tnp established
Portas ouvindo
Proto
Local
Processo
PID
nenhuma porta com esse filtro
nenhuma porta ouvindo
Conexões ativas
Proto
Local
Peer
State
nenhuma conexão com esse filtro
nenhuma conexão ativa
Systemd / journalctl
unidades
Unidade
Estado
Ações de sistema
Operações que afetam o servidor inteiro. Auditadas. Reboot derruba o painel até voltar.
Logs do sistema
nenhum log encontrado nas paths permitidas
● live○ desconectado
Firewall (ufw)
⚠ estado do firewall desconhecido — ● ativo○ desligado✕ ufw não instalado
selecione um arquivo na lista para visualizar / editar
Importar de URL
Permissões · chmod
Owner · chown
Compactar ·
Extrair
Propriedades
caminho
tamanho
conteúdo
modo
owner
modificado
acessado
link →
Buscar arquivos
🔎
sem resultados
Lixeira
🗑
lixeira vazia
controles ocultos — toque pra mostrar
Terminal
+
Workspaces
Nenhum workspace salvo. Configure seus painéis e clique em "Salvar layout atual".
Comandos rápidos
Meus
Recentes
Aparência e notificações
(só mobile)
O botão ⋯ (mais ações) é fixo e sempre aparece no fim da barra.
GPU off é o padrão (renderer DOM, sem glyphs errados). Ligue só se sua GPU não corromper; ligaduras off por padrão.
Linhas de output guardadas pra scroll (500–50.000).
Quando output match, dispara notificação visual.
Útil em celular/tablet onde o teclado virtual não fornece essas teclas.
Alerto quando um comando longo termina (≥10s).
Executado uma vez ao criar uma nova aba. Não roda ao reconectar nem ao reanexar sessões existentes.
⌨ Atalhos do Terminal
Navegação & busca
Buscar no scrollbackCtrl+F
Próximo / anteriorEnter / Shift+Enter
Snippets & comandosCtrl+;
Command paletteCtrl+Shift+P
ConfiguraçõesCtrl+,
Esta ajudaCtrl+Shift+!
Edição & seleção
Copiar seleçãoCtrl+Insert
ColarShift+Insert / Ctrl+V
Selecionar tudoCtrl+Shift+A
Limpar paneCtrl+Shift+K
Reset terminalCtrl+Shift+R
Salvar scrollbackCtrl+Shift+S
Visual
Aumentar fonteCtrl+=
Diminuir fonteCtrl+-
Modo concentraçãoEsc (no foco)
Ocultar chromeCtrl+Shift+H
Sinais & controle
Interromper (SIGINT)Ctrl+C
EOF / sairCtrl+D
Apagar palavra (^W)Ctrl+W
Limpar tela (^L)Ctrl+L
Suspender (SIGTSTP)Ctrl+Z
Features
Click+drag pra selecionar; auto-copy no select; drop file pra anexar path.
Cada pane lembra: fonte, tema, cursor, scrollback, alertas (regex), gravação.
Cap de 20 sessões por usuário. Sessões sobrevivem reboots.
🪟 Sessões
processando…
Nenhuma sessão. Crie uma com "+ Nova sessão".
Aparece para:
lendo a sessão…
Agrupado por sessão · versões por data. Auto-backup mantém os 10 mais recentes.
Nenhum backup ainda. Use "Backup de todas" na aba Sessões.
Backup captura estrutura (janelas/painéis), diretórios e scrollback. Restaurar recria a sessão com os mesmos diretórios e cola o scrollback como contexto — não ressuscita processos vivos (limite técnico: processos vivos não migram). Sessões já existentes não são sobrescritas.
Selecionar sessão
Todas as sessões do servidor. Clique ↩ para abrir numa aba; ✕ encerra a sessão; "+ nova" cria uma com nome customizado.
Cada coluna agrupa issues por status name (case-insensitive). Reordene com ↑/↓.
status:
↑↓✎ editar✕
cor:
AplicarCancelar
— sem colunas (vai cair no fallback 3-cat) —
Retenção
+ Nova coluna
cor:
+ Adicionar
↺ resetar pra default (3 cat)
CancelarSalvar layout
Jobs · fila de execução
⚠ Falha ao carregar os jobs — .
Contagens indisponíveis.
carregando…
rodando,
na fila,
falhas (últimas 24h)
+ Novo job↻
💾 salvar*salvo
EnfileirarCancelar
cancelarreiniciarlogexcluir
cancelarreiniciarlogexcluir
🗂️
nenhum jobnenhum job bate com os filtros
limpar
×
Agendamentos
ativos,
pausados · cron do vpsm
+ Novo agendamento↻
1🗂️ Escolha a tarefa→2🕒 Defina quando→3✅ Dispara sozinho
O vps-manager executa no horário (cron) e te avisa em caso de falha. Você só vê os tipos de tarefa que sua conta tem permissão para rodar.
⚙️
✕
1O que agendar
i
Nenhuma tarefa disponível para sua conta.
2Quando
A cada…DiárioSemanalMensalAvançado (cron)
A cada
Todo diaàs
⏰
Próximas:
3Detalhes
📁 Procurar
↻
↩ lista
📍 Onde salvar
Nesta VPSNuvem (Drive/OneDrive/S3…)
📁 Procurar
☁️ rclone não está instalado. Para conectar Google Drive, OneDrive, S3, Dropbox…: rode apt install rclone e depois rclone config. Os remotes aparecem aqui.
☁️ rclone instalado, nenhuma nuvem conectada ainda. Clique em Conectar nuvem abaixo para ligar Google Drive, OneDrive, S3…
➕ Conectar nuvem
↻
📁 Procurar
🔗 Encadear (opcional)
se der certosemprese falhar
{ schedForm.thenArgs[a.name]=p })">📁
↻
↩
🔔 Avisar ao concluir (opcional)
se der certosemprese falhar
· escolha uma tarefa…
CancelarSalvar
⚡ Modelos rápidos
Receitas prontas — clique pra abrir já preenchido, revise e salve.
🗂️ Tudo que dá pra agendar
Clique para criar um agendamento desse tipo. Filtrado pelo que sua conta pode executar.
requer primaryi
🔒Nada disponívelSua conta não tem permissão para agendar nenhuma tarefa. Fale com um administrador.
🔎Nada encontradoNenhuma tarefa bate com "".
📅 Seus agendamentos
Disparam jobs na fila (página "Jobs"). Falhas notificam por padrão (alertas = só em falhas).
quando ·
próx. ·
últimalatepuladofalhou
▶📄🕘✎⧉×
📅Nenhum agendamento aindaEscolha uma tarefa acima ou clique em "+ Novo agendamento" para começar.
📁
✕
⬆ subir
carregando…
📁
(nenhuma subpasta aqui)
aqui:
CancelarSelecionar esta pasta
☁️ Conectar nuvem
✕
cria o remote
Cancelar
✕
📘 O que faz e por quê
💡 Exemplos reais
📄 Onde fica o resultado
➡️ Depois de rodar
✅ Casos de uso
🛡️ Requer conta primary (administrador) para agendar.
tipo:
FecharAgendar isto
🕘 Histórico —
✕
carregando…
📄 log
🕘Sem execuções aindaQuando este agendamento rodar (ou você clicar em ▶), as execuções aparecem aqui.
últimas execuções
Fechar
RoteamentoMétricasTokensPrompts IAAgentes
Contas Claude
↻
Cada funcionalidade que usa Claude pode rodar numa conta diferente — ex.: Jobs na conta do Arthur enquanto o Terminal fica na da Chey, sem drenar o mesmo limite.
Regras, prompts e MCPs valem para as duas contas (compartilhados).
Login
Uso por conta · tokens · custo equivalente API (estimado)
↻
calculando uso…
Hoje
7 dias
Total
Fonte: transcripts do Claude Code por conta (mesma base do /cost). "Hoje/7 dias" usam o fuso do servidor. Cache write ≈ 1.25× input, read ≈ 0.1×.
Distribuição por tier · roteamento por complexidade (VPSM-42) · custo eq. API estimado
Quanto mais tokens fora do opus (tiers baratos haiku/sonnet), maior a economia e mais folga na cota semanal de Opus. Tarefas triviais (ex.: nomear alerta) já roteiam pra haiku.
Precedência: env > config > default. A troca vale para o próximo job/sessão. Só o tier de sugestão rebaixa por default (haiku); os demais herdam Opus até você mudar aqui.
Salvar
Não comutável por conta
Resumo / transcrição de videochamada — usa ANTHROPIC_API_KEY (Console), identidade de billing própria.
A troca vale para o próximo job ou sessão. Terminal/fork já abertos mantêm a conta até serem recriados (o env é fixado no 1º attach).
Botão de pânico
Use se algo travar (erro 401, conflito de auth, claude não responde).
Limpa ~/.claude/settings.json (remove qualquer ANTHROPIC_API_KEY),
força modo OAuth no router e reinicia o serviço.
Sessões Claude ativas precisarão reconectar.
Forçar OAuth limpo
Sessões ativas
Todas
↻
Nenhuma sessão aberta.
anexarrestart
↺
Nova sessão Claude
Cria uma sessão detached rodando claude. Use "fork" pra continuar uma conversa específica.
+ Nova sessão
Projetos
Memórias
Planos
Projeto
Arquivos
Tamanho
Última atividade
Fork
(use a aba terminal · resume via claude --resume <uuid>)
Rate limits & uso por conta
Cotas da assinatura Max (5h / semanal / mensal) por conta + consumo de tokens. Fonte: api.anthropic.com/api/oauth/usage e transcripts do Claude Code.
↻
consultando rate limits…
Crédito mensal extra:
Hoje
7 dias
Total
Últ. sessão
Tokens de acesso à API privada (private-ai-api) — endpoints
compatíveis com OpenAI/Anthropic servidos pela assinatura Claude Max.
Cada token é uma chave de API independente, com limites próprios.
OAuth (Claude Max)
expira em · long-lived
breaker:
Uso · 24h
requisições
tokens in/out:
ok/erros:
Serviço
v
node · db
Token criado — copie agora
Esta é a única vez que a chave em texto puro aparece. Guarde em local seguro; não dá pra recuperar depois.
Copiar
✕
Novo token
Tokens
↻
Nome
Prefixo
RPM/TPM
Budget/dia
Criado
Último uso
Expira
Status
Revogar
🔌 Como conectar um app
endpoint compatível com Anthropic e OpenAI
Copie o endpoint, o header de autenticação e o exemplo na sua linguagem.
Use um dos tokens criados acima como chave (x-api-key no formato
Anthropic, Authorization: Bearer no OpenAI).
Copiar
Copiar
Copiar
↩ recém-criado
Copiar
O certificado é self-signed. Baixe-o uma vez e aponte o cliente para ele:
Copiar
Fingerprint SHA-256:
⚠ Ignorar a verificação TLS expõe a conexão a ataques MITM. Prefira confiar no .crt;
use este modo só em rede confiável (ex.: mesma VPS/localhost). A chave da API continua sendo a autenticação.
Deploy
apps Heroku-style — git push pra publicar
AtualizarCatálogo+ Novo app
Catálogo de serviços
Fechar
← voltar
Variáveis
Criar e subirCancelar
Portas do editor (forward)processos em escuta na VPS → URL gated
AbrirAtualizar
Nenhuma porta de dev em escuta. Rode algo no terminal do editor (ex.: python -m http.server 8000).
↗⧉
Deploy é restrito ao usuário primário.
CriarCancelar
Nenhum app ainda. Crie um e faça git push pro remote que aparecer.
Sem hunks (arquivo sem alterações ou já tudo staged/limpo).
Cada entrada é um estado anterior do HEAD. Resetar volta o branch atual para lá.
↩ soft⟲ hard
Base: · reordene (↑↓) e escolha a ação de cada commit (de baixo p/ cima = mais antigo p/ novo).
↑↓
Aplicar rebasereword não suportado aqui — use Amend no topo.
Continuar rebaseAbortar
Sem conflitos. ✓
U✎ EditarNossaDeles✓ Resolvido
↔Comparar
↔ ·
·
Arquivos ()
Commits ()
→
Editor
Grafo
Fechar
Cancelar
Operador
Configurações
Identidade · segurança · parâmetros do vps-manager
Federado com twotrees.tech via Supabase Auth
Instalar aplicativo
Adiciona o vps-manager à área de trabalho ou tela inicial como app standalone — abre em janela própria, sem barra do navegador, com ícone próprio.
Aplicativo já instalado. Você está usando a versão standalone.
Instalar agora
Vai abrir a caixa de diálogo nativa do seu navegador.
Como instalar
iOS: Compartilhar (📤) → "Adicionar à Tela de Início". Chrome/Edge desktop: ícone "instalar" na barra de endereço (⊕ ou monitor com ↓). Firefox: não suporta PWA install nativo — use bookmark/atalho.
Trocar senha
A nova senha é propagada para o Supabase + também para o twotrees.tech.
Parâmetros do vps-managerread-only
Autenticação em 2 fatores (TOTP)
Compatível com Google Authenticator, Aegis, 1Password, Bitwarden. Mesmo factor funciona em v2 e em twotrees.tech.
Habilitar MFA SupabaseGerando QR…
1) Escaneie o QR code no app autenticador. 2) Digite o código de 6 dígitos.
Chave manual
ConfirmarVerificando…Cancelar
⚠ Backup codes — mostrados UMA vez
Salve agora num gerenciador de senhas. Cada código funciona uma única vez quando você não tiver acesso ao app autenticador. Se perder todos, use vpsmctl mfa-emergency-reset <user>.
Copiar todosSalvei, fechar
Factor
· backup codes restantes
Desabilitar
Sessões ativas
Todos os browsers/dispositivos onde sua conta está logada agora.
↻Sair de todas exceto esta
Carregando sessões…
⚠ Não foi possível carregar as sessões — .
A lista abaixo pode estar desatualizada. Não conclua que não há outras sessões ativas.
Edite como a análise "Analisar com Claude" pensa. Mudanças valem em runtime — sem redeploy.
↻ Recarregar
Como funciona: cada prompt tem um preâmbulo editável (o "cérebro" — torne-o mais inteligente, mais profundo, mais adversarial)
e um contrato de saídagerido pelo sistema (os headers ## ✅ Veredicto, ## 🎯 Certeza etc. que os parsers leem de volta).
O contrato é inserido onde você deixar o marcador {{OUTPUT_CONTRACT}} — ele é obrigatório nos prompts de auditoria/verificação e não pode ser removido,
senão o loop de convergência nunca atingiria os 85%.
Carregando…
não salvo
Rejeitado pelo guard de conformidade:
Ver o contrato de saída gerido (read-only) — inserido em {{OUTPUT_CONTRACT}}
Resetar pro padrãocontrato obrigatório
Serviço de Navegador indisponível
↻ Tentar novamente
O backend Ultraviolet+Wisp em 127.0.0.1:8090 não respondeu ao healthcheck.
Toque feito em WebAudio (sem .mp3). Pra notificação fora-da-aba, conceda permissão de notificações.
RecarregarDuplicarFecharFechar outrasFechar à direitaReabrir aba fechada
vpsmCPURAMLoad↓↑Painéis:
🔔
Notificações
limpar
Nenhuma notificação.
● modificadosalvo✕ Fechar
nada encontrado
↑↓ navegar · ↵ executar · esc fecharCtrl+K para abrir · ? para atalhos
Atalhos de teclado
✕
Globais
Command paletteCtrl+K
Command palette (dentro do terminal)Ctrl+Shift+P
Buscar global (mesma palette)Ctrl+/
Quick switcher (sessões/snippets)Ctrl+P
Ocultar/mostrar barra superiorCtrl+Shift+H
Ditado por voz no campo focadoCtrl+Shift+M
Esta janelaCtrl+Shift+!
Fechar palette / modal / concentraçãoEsc
Com o foco dentro de um painel de terminal, o xterm consome
Ctrl+K (no shell é “apagar até o fim da linha”) e
Ctrl+Shift+!. Use Ctrl+Shift+P
pra abrir a palette sem sair do painel.
Ir para… (tecle g, depois a letra)
Dashboardg d
Terminalg t
Containersg c
Imagensg i
Volumesg v
Redesg n
Arquivosg f
Históricog h
Alertasg l
Systemd / journalctlg s
Auditoriag a
Usuáriosg u
Tarefasg m
Jobs (fila)g j
Agendamentosg e
Deployg p
WhatsAppg w
Navegadorg b
Configuraçõesg r
Não funciona enquanto você digita num campo ou dentro de um painel de
terminal. A segunda tecla tem 800 ms pra chegar. Telas sem letra
(Compose, Prune, Git, VSCode, Grafos…) estão todas na palette.
Painel do terminal
Copiar seleçãoCtrl+Insert
ColarShift+Insert
Selecionar tudoCtrl+Shift+A
Buscar no scrollbackCtrl+F
Limpar telaCtrl+Shift+K
Reset (terminal travado)Ctrl+Shift+R
Salvar scrollback (.txt)Ctrl+Shift+S
Aumentar / diminuir fonteCtrl+= / Ctrl+-
Configurações do terminalCtrl+,
Ajuda do terminalCtrl+Shift+!
Limpar seleção marcadaEsc
Selecionar com o mouse já copia. Ctrl+Shift+C/V ainda
funcionam como reserva no Firefox; no Chrome/Edge o navegador rouba a
combinação pro DevTools — por isso o padrão é Insert.
Ctrl+W é entregue ao shell (apagar palavra) em vez de
fechar a aba do navegador.
Painéis (dtach)
Painel seguinteAlt+→ / Alt+↓
Painel anteriorAlt+← / Alt+↑
As sessões rodam em dtach, que — ao contrário do tmux —
não tem prefix key: não existe Ctrl+B aqui.
Dividir, criar, renomear e fechar painel é pela barra de título do painel,
pelo menu de contexto (botão direito) ou pela palette (“Terminal: split…”).
Fechar um painel não mata a sessão — ela continua viva e pode ser reatada.
Alt+setas agem quando o foco está fora do painel (na barra de título, por
exemplo); com o cursor dentro do terminal as setas vão pro programa em
execução. Pela palette funciona sempre.
Em videochamada há um conjunto próprio (mudo, câmera, chat…):
abra o overlay dela com Ctrl+Shift+! durante a chamada.