🌐 هذه الصفحة لم تُترجم بعد إلى العربية. يتم عرض المرجع البرتغالي (BR). ساعد في الترجمة.
Server Admin Panel
Painel de administração do servidor RoqueOS conectado, embutido no app (Launchpad → Server Admin). Substitui o HTML legacy em <seu-servidor>:27021/admin — esse continua funcionando como fallback (emergência, scripts), mas o painel nativo é onde tudo acontece no dia a dia.
Sections sempre disponíveis
| Section | O que faz |
|---|---|
| Monitoramento | CPU/RAM/Disco/Docker live, top containers |
| API Keys | Criar/revogar chaves, ver permissões, logs por chave |
| Histórico de uso | Logs por API Key (request count, IPs únicos, atividade) |
| Cloudflare Tunnel | Status do tunnel, criar/remover rotas, lista de subdomínios |
| Rede | IP LAN configurado, outras LANs salvas pra acesso direto |
| Legendas | Provedores OpenSubtitles / Subdl pro Video Player |
| Recursos & versão | Versão do server, update available, features ativas |

Sections multi-tenant (gateadas por flag)
5 sections extras aparecem somente quando a flag multiTenant está ativada em Admin Panel → Settings → Cloud feature flags:
| Section | O que faz |
|---|---|
| Usuários & convites | Convidar pessoas pra usar o servidor com você |
| Permissões de apps | Templates de policy (Permissivo / Padrão / Restrito) |
| Uso de recursos | CPU/RAM/disco/banda agregados (LGPD-friendly) |
| Alertas | Regras "avisar quando uso > X%" via email/Slack |
| Log de auditoria | Quem fez o quê e quando (metadata, nunca conteúdo) |
Por que gated por flag
Multi-tenant exige schema novo (Firestore + SQLite no server) que ainda não está plug-and-play em todos os deploys. Manter ligado por default exporia UI sem backend pronto. Quando o módulo members ship no roqueos-server, a flag vira default ON.
Como ligar agora (Admin Panel apenas — não é por usuário):
- Login admin em
/app - Launchpad → Admin Panel
- Settings → role até Cloud Product (recursos avançados)
- Liga Multi-tenant (membros + permissões + alertas) → Save
- Volte ao Server Admin Panel → sidebar mostra 5 itens novos
Usuários & convites

- Botão "Convidar usuário" abre modal com email + role (Owner/Admin/User)
- Email é enviado pelo SMTP do servidor com link de aceite
- Após aceitar, usuário entra na lista com badge de status (Pendente/Ativo/Revogado)
- Menu de ação por linha permite Revogar acesso (volta pra lista de revogados, não deleta dados)
Roles:
- Owner: você (1 por servidor)
- Admin: gerencia outros usuários e policies, vê tudo
- User: usa apps conforme policy ativa
Permissões de apps

3 templates pré-configurados:
| Template | Quem vê o que |
|---|---|
| Permissivo | Todos os apps liberados pra todos os roles. Time pequeno de confiança. |
| Padrão | Admin vê tudo. User vê produtividade, mídia, utilitários (não Server Admin). |
| Restrito | User só vê Finder, Notes, Browser e Chat. Tudo mais escondido. |
Aplicar template é destrutivo — reescreve overrides per-user existentes. Por isso tem modal de confirmação obrigatório:

O modal lista as 3 consequências da ação:
- ✓ Reescreve as policies do servidor pro template selecionado
- ⚠ Apaga todos os overrides per-user existentes (não pode desfazer)
- ⟲ Backup do estado anterior fica em
/admin/policies/historypor 30 dias
Usuário precisa clicar Aplicar template (botão vermelho) pra confirmar. Cancelar é o default.
Uso de recursos

Cards mostrando consumo agregado:
- CPU: % uso médio do host
- Memória RAM: GB usados / total
- Disco: GB usados / total alocado
- Banda mensal: GB transferidos / quota Hetzner (20 TB no plano padrão)
Banda colorida por threshold:
- < 75%: gradient azul (saudável)
- 75-90%: gradient laranja (atenção)
- 90%+: gradient vermelho (crítico)
Privacidade LGPD (disclaimer azul no rodapé): coletamos APENAS métricas agregadas (% CPU, MB de RAM). Nunca o conteúdo dos arquivos, sessões ou conversas dos usuários.
Alertas

Banner LGPD no header (azul, sempre visível):
Privacidade LGPD — Alertas observam SÓ métricas agregadas (% CPU, MB de RAM). NUNCA conteúdo de arquivos, sessões ou conversas do usuário.
Criar regra:
- Métrica: CPU / RAM / Disco / Banda
- Operador:
≥ - Threshold: number
- Canal: email (default), Slack/Discord webhook (planejado)
- Status: Ativa / Desativada (toggle na linha)
Quando o trigger fire, alert é enviado pelo SMTP do servidor + registrado no Audit Log.
Log de auditoria

Banner LGPD: o log registra SÓ metadata da ação (quem, quando, tipo) — NUNCA o conteúdo manipulado.
Eventos registrados:
member.invited(email + role)member.revokedpolicy.template_applied(qual template)policy.override_changed(usuário X, app Y, before/after)alert.triggered(regra X, valor Y)apikey.created/apikey.revokedserver.config.changed
Retenção: 400 dias (alinhado com requisito Google Cloud Data Access Audit Log padrão LGPD).
Demo público
Quer experimentar sem instalar nada? https://demo.level-hard.com é o servidor público de demo, atualizado pelo founder com cleanup-demo.sh (cron diário). Limites:
- Não-admin: pode usar apps mas não vê Server Admin (gate de segurança em
windowManagement.js:88) - Multi-tenant intencionalmente OFF no demo (evita poluição)
- Containers + arquivos limpados diariamente
Pra testar multi-tenant você precisa instalar próprio via install.sh e flipar a flag.
Referências cruzadas
- Add Server Wizard — como conectar o servidor recém-instalado
- Volumes e backup — onde os dados das multi-tenant tables vivem
- RoqueOS Cloud — versão gerenciada que já vem com multi-tenant ativado
- Memory
multi_user_roles_decision.md(interna) — racional LGPD + arquitetura