Nova versão disponível
recarrega sozinho depois de 10 min com a aba parada
a aba só recarrega quando você mandar
Claude Code desatualizado
O CLI ja baixou a versao nova; cada sessao so passa a usa-la depois de reiniciar.
Reiniciar retoma a conversa (claude --continue), mas interrompe
tarefa em andamento — por isso nada acontece sem voce mandar.
Federado com twotrees.tech · MFA opcional via Configurações
Ouvindo
barra oculta — clique ou Ctrl+Shift+H
Operação ao vivo
Dashboard
Métricas em tempo real · atualização a cada 5s
Metricas desatualizadas — .
Ultimo dado .
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:
falhou(aram)
Portas:
ID Criado
Falha ao carregar do Docker
Nenhum container
Docker Compose
projetos detectados
Novo projeto Compose
serviços
Nenhum projeto casa com o filtro
Nenhum projeto Compose
Saída da última ação
Imagens Docker
· total:
selecionada(s)
falhou(aram)
Repositório
Tag
ID
Tamanho
Criado
Uso
Nenhuma imagem
Volumes
volumes
selecionado(s)remoção de volume é via aba Limpeza — aqui você copia:
Nome
Driver
Mountpoint
Criado
Projeto
Nenhum volume casa com o filtro
💾
Nenhum volume Docker
Volumes guardam dados persistentes de containers. Eles nascem quando um serviço declara volumes: — crie um projeto Compose pra começar.
Redes Docker
redes
ordenar:
IDScopeInternalSubnet
Nenhuma rede casa com o filtro
🌐
Nenhuma rede Docker
Redes conectam containers entre si. Um projeto Compose cria a sua própria rede automaticamente.
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
+
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.
Mostra a tecla esmaecida na hora, sem esperar a volta do servidor, e corrige
quando a resposta chega. Não age em tela cheia (vim, htop) nem em prompt de senha.
Acima desta latência medida, o palpite entra. Padrão 60 ms.
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.
Nova sessão
🪟 Sessões
processando…
Nenhuma sessão. Crie uma com "+ Nova sessão".
⚠ Não consegui carregar a lista — isto NÃO é perda de 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.
Nenhuma sessão ativa.
Sessões ativas
Todos os browsers/dispositivos onde sua conta está logada agora.
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.
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
–×
1 job em execuçãoreabrir×
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).
aguardando login
Login
Uso por conta · tokens · custo equivalente API (estimado)
↻
calculando uso…
Hoje
7 dias
Total
Não atribuído
Hoje
7 dias
Total
Transcripts gravados antes do ledger de atribuição existir. O transcript não registra a conta, então dizer de quem foi seria chute. Encolhe sozinho conforme as sessões novas passam pelo ledger.
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×.
⚠ As contas compartilham a mesma árvore de transcripts (), porque o swap ao vivo precisa dela para o --continue sobreviver à troca. O transcript não registra a conta, então a divisão vem do ledger de atribuição (hook SessionStart), não do arquivo. O que é anterior ao ledger aparece em "Não atribuído".
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.
Laboratório
← Resumo do lab
A última tentativa do poller FALHOU:
— os números abaixo são os últimos que ele conseguiu, e a idade deles não vai parar de crescer até isto se resolver.
Sem permissão para ver o hipervisor.
Cofre inalcançável — os estados de credencial abaixo são os últimos conhecidos, não uma leitura de agora.
▶ Ligar↻ Reiniciar⏻ Desligar com elegânciaCortar energiaDesmarcar
Sem permissão para ver o inventário
Isto não é "não há nós": é a sua sessão não podendo enxergá-los.
Falhou ao buscar os nós
O laboratório pode estar inteiro — quem falhou foi o caminho até ele.
Nenhum nó no inventário ainda — o poller carimba no próximo tick.
Nenhum nó com .
Limpar filtro
nós
modelo
Guests ligados
Memória somada
Pools ZFS
Frescor de backuplendo…
Nenhum datastore de backup declarado no hipervisor.
hipervisordetalhe do nó
RAM
raiz
Os medidores dos guests abaixo ficam cinza quando o nó não está ao vivo.
Barra colorida sobre dado vencido afirmaria uma medição que ninguém fez.
Selecione um nó à esquerda para ver o detalhe dele.
✕
Consumo
rede
estado
transporte
endereço
credencial
atualizado
▶ Ligar↻ Reiniciar⏻ Desligar com elegância▮ Console
irreversíveis — exigem digitar o nome do nóCortar energiaRevogar credencial
executando no hipervisor…
Shell do hipervisor — root em .
Daqui se alcança todos os guests, os pools e as credenciais do lab.
ConsoleFechar
Toda sessão de console fica registrada na auditoria — abertura e fechamento, com o guest e a duração.
É o preço de o painel expor um shell.
SnapshotsCriar
Voltar a esteApagar
Este guest não tem snapshot.
Clonarcópia completa, guest novo, origem intocada⧉ Clonar…
perguntando ao hipervisor qual id está livre…
id novo (do hipervisor)
nome do clone
a partir do snapshot
este container está ligado e não tem snapshot — crie um na seção acima, ou desligue o guest
Clonar agoraCancelar
⚠ este guest está ligado — a cópia sai consistente-de-queda, como um desligamento abrupto
Guardar cópia agoravzdump para um storage, sem podar as antigas⭳ Guardar cópia
Esta cópia NÃO apaga nenhuma outra: o pedido vai sem prune-backups,
de propósito. Um comando que você aperta para ganhar uma cópia não pode apagar as que já existem.
nenhum storage deste hipervisor aceita backup — não há para onde mandar
Serviços
—
Publicações
—
Jobs
—
O que esta caixa fazlendo…nota do Proxmox✎ Editar
passou do teto — nota é para LER
salvando…Salvar no ProxmoxCancelar
Markdown: ## título ·
**negrito** ·
`código` ·
- lista ·
--- régua.
O texto vai para o campo Notes do Proxmox — é o mesmo
que a tela nativa mostra.
não deu para ler a nota no hipervisor —
Este nó ainda não tem descrição. Ela é lida do campo Notes
do Proxmox — escreva lá e ela aparece aqui.
Tarefas do hipervisor
ver log
Nenhuma tarefa nesta janela — e vazio aqui é vazio, não erro.
Discos físicoso hardware, e o que vive em cima dele
carrega o pool
nenhum pool casado por serial (o caminho by-id deste disco não expõe serial legível)
Nenhum disco reportado.
Datastores
sem Datastore.Audit — a lista pode estar incompleta
privilégio ainda não medido
guarda cópias — ver o frescor no resumo do lab
Nenhum datastore visível.
Pools ZFS
lendo a topologia…
Nenhum pool reportado.
O que este token pode— o que o painel consegue ver do hipervisor, por medição
Este token não tem Datastore.Audit — medido agora, não suposto. Por isso os
blocos de capacidade e de zpool aparecem vazios: a ACL do hipervisor filtra a lista antes da resposta,
e o hipervisor devolve 200 com lista vazia, nunca 403.
Este token tem Datastore.Audit — capacidade de storage e estado do zpool são leitura viva.
Continuam fora: conteúdo de datastore/evidência de backup e apt, que exige
Sys.Modify.
Janelalendo…
sem amostra nesta janela
Interfaces
sem autostart
Nenhuma interface reportada.
Hora e fuso
DNS
nenhum servidor configurado
Certificadoso painel avisa ANTES de vencer, não depois
Nenhum certificado reportado.
Pacotes instalados
Nenhum pacote casa com o filtro.
Registro do sistemajournal do hipervisorrecarregar
O journal não devolveu linha nenhuma.
CPU
IO delay
tempo esperando disco, não computando
Load
Memória
Disco raiz
Swap
Energia do hipervisor
Sem IPMI e sem Wake-on-LAN útil: se a máquina não voltar, religar é presencial.
Cada botão pede o nome do hipervisor digitado.
↻ Reiniciar o hipervisor⏻ Desligar o hipervisorenviando…
uptime
versão do PVE
kernel
KSM
fuso
dado de
Log da tarefa✕
carregando…
— o servidor corta em 200 linhas —
⚠️
O modulo do laboratorio nao carregou
O painel Proxmox depende de um script que nao chegou (rede instavel ou cache do app desatualizado). Recarregar resolve.
Recarregar
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.
Aceita um .zip com a familia de arquivos do save (o mesmo formato que o botao Baixar gera).
O save id e detectado pelo arquivo -index de dentro do zip.
Enviarenviando…
🗺️
Nenhum mundo encontrado
Este servidor não expõe mundos gerenciáveis, ou a pasta worlds/ está vazia.
Configurações
· preset
↻Padroes das regras
Salvar força o preset Custom — com qualquer outro preset o jogo
ignora os valores individuais em silêncio. O servidor lê a configuração só no boot, então
as mudanças só valem depois de reiniciar.
Arquivo de configuracao (avancado)
Editar aqui pode impedir o servidor de subir. O texto e validado como JSON e um .bak
do arquivo anterior e guardado, mas a responsabilidade do conteudo e sua.
RecarregarValidar, salvar e reiniciar
Agendamentos e retencao
Estas opcoes vivem no compose do container, nao no arquivo do jogo. Salvar recria o
container para aplicar — o servidor reinicia.
?
a cada
🕑
Quantos backups guardar?
Salvar e recriar
Servidor
Estes campos vinham sendo sobrescritos pelo compose a cada start; as variaveis foram
removidas para que o arquivo do servidor seja a fonte unica e o que voce salvar aqui persista.
Senhas de entrada
?Ficam na aba Acesso — uma por grupo, nao ha senha unica de servidor.
Ir para Acesso →
Permissoes e vagas reservadas
?Definidas por grupo, na aba Acesso — cada senha carrega suas proprias permissoes.
Ir para Acesso →
DescartarSalvar e reiniciar
↺✎↩
DescartarSalvar sem reiniciarSalvar e reiniciar
⚙️
Sem configurações editáveis
Este jogo não expõe um arquivo de settings gerenciável por esta página.
Acesso
grupo(s) ·
banido(s)
↻
Cada grupo tem senha propria: o jogador digita a senha do grupo ao entrar e o
servidor o coloca naquele papel. O padrao da comunidade e Admin / Amigo / Visitante.
Senhas iguais entre grupos derrubam o servidor ao iniciar — a tela recusa salvar nesse caso.
👁🎲
reservadas
?Remover
+ Novo grupoUsar modelo Admin/Amigo/VisitanteSalvar e reiniciar
Banidos
Um identificador por linha (SteamID64). O jogo le esta lista ao iniciar.
Salvar banidos
Console
↻
Trainer
ativo(s) na memória do servidor
↻ Reaplicar
🎛️
Trainer não instalado nesta máquina
O agente tl-agent não foi encontrado.
Os patches vivem na memória do servidor — não tocam o save nem o binário.
Reiniciar o servidor apaga tudo; com o tl-daemon instalado, volta sozinho.
Enquanto o filtro por jogador não existir, o que você ligar aqui vale
para todo mundo que entrar.
alterações não salvasDesligar tudo
Ligado, mas não aplicado: .
Volta sozinho quando a condição mudar.
?ativo
↺
Nos campos de dano, o número é percentual sobre o valor original: 100 = dobra, 0 = desligado.
Backups
arquivo(s) ·
⬇ Criar backup agora
↻
Restaurar para o servidor, sobrescreve o save atual e sobe de novo.
Antes de sobrescrever, um zip do estado corrente é gravado automaticamente
(prefixo manual-pre-restore-) — dá pra voltar atrás.
Backups automáticos aparecem conforme o agendamento do servidor — ou crie um agora.
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
Dispositivos pareados (app Android)
Um dispositivo que escaneia o QR code de pareamento fica pendente até você aprovar aqui — só depois disso ele consegue logar por passkey.
↻
Parear novo dispositivo
Gere um QR code e escaneie com o app Android — o endereço deste servidor já vem embutido no código, não precisa digitar nada no celular.
Gerar QR codeGerar novo código
Servidor:
Expira em s
Expirado — gere um novo código.
Nenhum dispositivo pareado ainda. Gere um QR code acima e escaneie com o app.
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.
ResponderCopiar textoFavoritarEncaminharEditarApagar pra mimApagar pra todos
🚪 Suas salas
↻ Recarregar
+ Criar
👤 👥 dono
📹 Entrar
🚪
Você ainda não tem salas
Crie uma acima ou clique num link de convite que recebeu.
👈
Selecione uma sala
Clique numa sala à esquerda pra gerenciar membros e preferências.
✏️
✓×
ID:$event.target.textContent='📋',1500)" title="Copiar ID completo">📋
🗑 Apagar
📹 Entrar na chamada
👥 Membros
dono×
+ Adicionar
📶 Qualidade & Banda
aplica na próxima chamada
📞Telefone🐢Mínima🟢Economia🟡Médio🔴Alto
⚙Personalizado
Floor é 8 kbps (Opus extremo). Abaixo de 16 kbps a voz fica artificial.
🔒 Segurança & Notificações
Criptografia fim-a-fim (E2EE)
Frames AES-GCM cifrados antes do encoder. Pede passphrase ao entrar. Servidor não vê conteúdo. Navegador não suporta.
Receber chamadas off-app
Web Push VAPID com payload cifrado. Funciona no PWA e no browser. Permissão bloqueada no navegador.
Web Push não suportado
Este navegador (ou contexto não-PWA no iOS) não suporta Web Push.
Aparelhos que tocam
Quando alguém liga, o painel toca em todos os aparelhos em que você está logado. Desligue os que não devem tocar — a chamada continua chegando nos outros.
Nenhum aparelho registrado ainda. Cada navegador aparece aqui na primeira vez que abre o painel.
· este aqui
· visto
silenciar 8hcancelar silêncioesquecer
🔗 Convidar com link (precisa de conta)
🔗 Gerar link
Link single-use. Quem abrir entra como membro permanente da sala. O convidado precisa ter conta no painel.
🔢 Entrada por PIN (sem conta — anônimo)
Revogar
Gere um PIN curto pra alguém entrar SEM ter conta. A pessoa abre /join e digita o PIN + nome. Útil pra família e amigos.
🔢 Gerar PIN
PIN ativo — qualquer pessoa com esse código entra como convidado:
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 de um multiplexador dono da tela —
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.