Painel Administrativo
Selecione uma opção para começar.
Abrir Monitoramento
Visualizar grade de câmeras em tela cheia (Nova Janela).
Monitor de Eventos
Acompanhar logs, alarmes e status em tempo real.
Central de Alarmes
Visualizar eventos de centrais Intelbras/Hikvision/JFL.
Configurar Câmeras
Adicionar, editar ou remover câmeras do sistema.
Tutorial de Instalação
Passo a passo para instalar em servidor único ou modular.
Gravações Cloud
Acessar e baixar gravações armazenadas no servidor.
Gravações em Nuvem
{{ recordingsList.length }} Arquivos encontrados
Nenhuma gravação encontrada para os filtros selecionados.
Gerenciamento de Câmeras
| Status | Nome | Cliente | Grupo | Origem (URL/ID) | Localização | Ações |
|---|---|---|---|---|---|---|
| Desativada ... Online Offline | {{ cam.name }} | {{ getClientName(cam.client_id) }} | {{ cam.group || 'Padrão' }} | {{ cam.source }} | {{ cam.location }} | |
| Nenhuma câmera cadastrada. | ||||||
Reconhecimento Facial
{{ faceError }}
Recurso desativado (ou banco de dados desligado). Verifique
ENABLE_FACE_RECOGNITION e DATABASE_URL.
Pessoas
{{ facePersons.length }}
-
{{ p.name }}{{ p.notes }}
- Nenhuma pessoa cadastrada.
Fotos de referência
Pessoa selecionada: {{ faceSelectedPerson.name }}
Carregando...
| Data | Ações |
|---|---|
| {{ formatTimestamp(r.created_at) }} | |
| Nenhuma foto. | |
Últimas capturas
Carregando...
| Data | Câmera | Pessoa | Score | Ações |
|---|---|---|---|---|
| {{ formatTimestamp(it.timestamp) }} | {{ getCameraName(it.camera_id) || it.camera_id }} | {{ getFacePersonName(it.match_person_id) || (it.match_person_id ? it.match_person_id : '-') }} | {{ Number(it.match_score || 0).toFixed(3) }} | |
| Nenhuma captura. | ||||
Reconhecimento de Placas
{{ lprError }}
Recurso desativado (ou banco de dados desligado). Verifique
ENABLE_LPR e DATABASE_URL.
Veículos
{{ lprVehicles.length }}
-
{{ v.name }}{{ v.notes }}
- Nenhum veículo cadastrado.
Imagens de Referência
Veículo selecionado: {{ lprSelectedVehicle.name }}
Carregando...
| Data | Ações |
|---|---|
| {{ formatTimestamp(r.created_at) }} | |
| Nenhuma imagem. | |
Últimas leituras
Carregando...
| Data | Câmera | Placa/Veículo | Score | Ações |
|---|---|---|---|---|
| {{ formatTimestamp(it.timestamp) }} | {{ getCameraName(it.camera_id) || it.camera_id }} | {{ getLprVehicleName(it.match_vehicle_id) || (it.match_vehicle_id ? it.match_vehicle_id : '-') }} | {{ Number(it.match_score || 0).toFixed(3) }} | |
| Nenhuma leitura. | ||||
Meus Equipamentos (DVRs/NVRs)
| Status | Nome | Cliente | IP / Host | Marca | Canais | Ações |
|---|---|---|---|---|---|---|
| Desativado ... Online Offline | {{ dvr.name }} | {{ getClientName(dvr.client_id) }} | {{ dvr.ip }}:{{ dvr.port }} | {{ dvr.brand }} | {{ dvr.channels }} | |
| Nenhum equipamento salvo. | ||||||
Clientes
| Nome | Documento | Telefone | Endereço | Ações | |
|---|---|---|---|---|---|
| {{ client.name }} Desativado | {{ client.document }} | {{ client.phone }} | {{ client.email }} | {{ client.address }} | |
| Nenhum cliente encontrado. | |||||
Itens atrelados ao cliente: {{ selectedClient.name }}
ID: {{ selectedClient.id }}
Observações: {{ selectedClient.notes }}
Câmeras
{{ clientLinkedCameras.length }}
Nenhuma câmera vinculada.
| Desativada ... Online Offline | {{ cam.name }} | {{ cam.ip || cam.source || 'sem host' }} |
|
Equipamentos (DVRs)
{{ clientLinkedDvrs.length }}
Nenhum DVR vinculado.
| Desativado ... Online Offline | {{ d.name }} | {{ d.ip || 'sem IP' }}:{{ d.port || '-' }} |
|
Tomadas Inteligentes
{{ clientLinkedSmartPlugs.length }}
Nenhuma tomada vinculada.
| Online Offline Indef. | {{ p.name }} | estado: {{ p.last_state || 'unknown' }} |
|
Centrais
{{ clientLinkedCentrals.length }}
Nenhuma central vinculada.
| Online Offline ... | {{ c.name }} | {{ c.brand || 'generic' }} |
|
Regras IA
{{ clientLinkedAiRules.length }}
Nenhuma regra IA vinculada.
| Ativa Inativa | {{ r.name }} | {{ r.instructions }} - | {{ getAiRuleTypeLabel(r.type) }}, câmera: {{ getCameraNameById(r.camera_id) }} |
Cliente selecionado não encontrado.
Tomadas Inteligentes
| Estado | Status | Nome | Cliente | Vinculado | Último reinício | Ações |
|---|---|---|---|---|---|---|
| Ligada Desligada Desconhecido | Online Offline Indefinido | {{ plug.name }} | {{ getClientName(plug.client_id) }} | {{ plug.linked_total }} 0 | OK Falha Em andamento Info {{ formatTimestamp(plug.last_restart_at) }} - | |
| Nenhuma tomada cadastrada. | ||||||
Configurações Gerais
Reinício Automático
Define quando o sistema executa reinícios automáticos ao detectar offline.
Integrações
Configurações para notificações externas.
URL para enviar POST JSON com detalhes de eventos críticos e regras IA.
Reconhecimento Facial
Retenção das capturas salvas no sistema.
Gateway Agent
URL usada pelos agentes (ex: endereço Tailscale do servidor).
Endereço público usado para gerar links temporários de compartilhamento.
Chave Interna
Usada para autenticação interna (header
X-Internal-Token) entre serviços e agentes.Status: configurado
Status: não configurado
Chave preenchida (ainda não salva)
Logs de Auditoria
| Data | Ação | Usuário | Client | Rota | Status | Detalhes |
|---|---|---|---|---|---|---|
| {{ it.date_str || formatTimestamp(it.timestamp) }} | {{ it.action }} | {{ (it.username || it.user_id || '-') }} | {{ it.client_id || '-' }} | {{ it.method }} {{ it.path }} | {{ it.status_code }} |
ver{{ formatJson(it.metadata) }}
|
| Nenhum log encontrado. | ||||||
Usuários (Técnicos / Monitores)
Carregando...
| Usuário | Função | Cliente | Status | Ações |
|---|---|---|---|---|
| {{ u.username }} | Técnico Monitor {{ u.role }} | {{ getClientName(u.client_id) || (u.client_id || '-') }} | {{ u.is_active ? 'Ativo' : 'Inativo' }} | |
| Nenhum usuário encontrado. | ||||
Alarmes e Eventos
Histórico de detecções (Em breve).
Mapa Sinótico (Planta Baixa)
Carregando mapa...
Câmeras Disponíveis
Arraste as câmeras para o mapa.
{{ cam.name }}
Nenhuma planta baixa carregada.
{{ getCameraName(marker.camera_id) }}