🌐 यह पृष्ठ अभी तक हिंदी में अनुवादित नहीं किया गया है। पुर्तगाली (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