Manual de Instalação — Sistema de Senhas Guia completo para instalar o sistema de senhas em um servidor do cliente pela primeira vez. O sistema é composto por: Backend : pasta mvp-senhas (servidor Node.js com a API e o banco em arquivo JSON). Frontend : pasta mvp-senhas-ui (interface moderna em React, que precisa ser "compilada" antes de ir pro servidor). Quando o sistema é instalado, o frontend já vem embutido dentro da pasta mvp-senhas/public . O servidor entrega tudo na mesma porta. Parte A — Preparar o pacote (na sua máquina) Você só faz isso uma vez, antes de levar o sistema pro servidor do cliente. A1. Pré-requisitos Na sua máquina precisa estar instalado: Node.js LTS (versão 20 ou superior): https://nodejs.org/ Confirme no prompt: node -v npm -v A2. Instalar dependências do frontend Abrir o prompt na pasta mvp-senhas-ui : cd "Sistema de Senha Novo\mvp-senhas-ui" npm install Esse passo só precisa rodar uma vez (ou quando atualizar dependências). A3. Gerar o build da interface Ainda na pasta mvp-senhas-ui : npm run build Isso cria uma pasta dist/ com o frontend pronto pra produção (HTML, CSS e JS otimizados). A4. Substituir o public do backend Apagar todo o conteúdo de Sistema de Senha Legado\mvp-senhas\public\ . Copiar todo o conteúdo da pasta mvp-senhas-ui\dist\ pra dentro de mvp-senhas\public\ . Resultado: dentro de mvp-senhas\public\ deve ter index.html , uma pasta assets/ e demais arquivos do build. A5. Compactar o pacote Compactar a pasta mvp-senhas inteira em um .zip . Esse zip é o que vai pro servidor. Parte B — Instalar no servidor do cliente B1. Escolher o servidor Use um computador que fique sempre ligado: servidor Windows da empresa; computador dedicado na recepção; mini PC ligado na rede; servidor virtual interno. Evite notebook pessoal — se desligar, todos perdem acesso. B2. Instalar Node.js no servidor Baixar e instalar Node.js LTS (versão 20 ou superior): https://nodejs.org/ Confirmar no Prompt de Comando do servidor: node -v B3. Copiar a pasta do sistema Extrair o zip preparado na Parte A para um caminho fixo, por exemplo: C:\Sistemas\mvp-senhas B4. Criar o arquivo .env Dentro de C:\Sistemas\mvp-senhas , criar um arquivo chamado .env (sem extensão .txt ) com o conteúdo: PORT=3030 APP_NAME=Atendimento SESSION_SECRET=troque-por-um-texto-grande-e-aleatorio COOKIE_SECURE=false DATA_FILE=data/state.json TRUST_PROXY=false Atenção: Troque o SESSION_SECRET por um texto longo e aleatório (qualquer combinação de letras e números, ex: kJ8m2nP9xR4tQ7vW1yU6 ). COOKIE_SECURE=false é o correto pra rede interna sem HTTPS. Não mude para true a menos que esteja servindo via HTTPS. B5. Primeiro teste No Prompt de Comando, dentro da pasta: cd C:\Sistemas\mvp-senhas node server.js Se aparecer mensagem indicando que o servidor está rodando na porta 3030 , está correto. Abrir no navegador do próprio servidor: http://localhost:3030 Deve aparecer a tela de login. B6. Primeiro acesso Logar com o usuário administrador de suporte: Usuário : admin Senha : Adm1nC&bi14863 ⚠️ NÃO trocar a senha do admin . Esse usuário e senha são padrão de suporte da CEBI — é o que garante que a equipe de suporte consiga acessar o sistema em produção a qualquer momento (pra resolver problema, aplicar correção, ajudar o cliente). Em vez de trocar a senha do admin , o procedimento correto é: Entrar uma vez com o admin (só pra criar usuários iniciais). Criar os administradores do cliente em Administração → Funcionários → Adicionar (ver passo B11). Daí em diante, o pessoal do cliente trabalha com os usuários próprios deles. O admin fica reservado pra suporte. Se por qualquer motivo a senha do admin for trocada na produção, comunique a equipe de suporte imediatamente — caso contrário, perde-se o acesso de suporte naquele cliente. B7. Liberar firewall No Windows Firewall do servidor, liberar entrada TCP na porta 3030 : Abrir "Windows Defender Firewall com Segurança Avançada". Regras de Entrada → Nova Regra → Porta → TCP → 3030 → Permitir conexão. Aplicar a todos os perfis (Domínio, Particular, Público — ou conforme política do cliente). Nomear a regra (ex: "Sistema de Senhas"). Sem isso, o sistema funciona no próprio servidor mas não abre nos outros computadores da rede. B8. Acessar de outras máquinas Em outros computadores da rede: http://IP_DO_SERVIDOR:3030 Exemplos: http://192.168.0.50:3030 http://SERVIDOR-SENHAS:3030 Pra descobrir o IP do servidor, no próprio servidor: ipconfig E procurar "IPv4" na seção da placa de rede ativa. B9. Rodar automaticamente ao ligar o servidor Em produção, o sistema precisa subir sozinho quando o servidor reinicia. Opção simples — Agendador de Tarefas do Windows Abrir "Agendador de Tarefas". Criar tarefa (não criar tarefa básica). Geral : marcar "Executar com privilégios mais altos". Disparadores : novo → "Ao iniciar o computador". Ações : nova → Programa: node — Argumentos: server.js — Iniciar em: C:\Sistemas\mvp-senhas . Configurações : desmarcar "Parar a tarefa se executar por mais de...". Salvar e testar reiniciando o servidor. Opção mais robusta — NSSM (recomendada) Permite rodar como serviço Windows de verdade, com restart automático em caso de queda. Baixar NSSM: https://nssm.cc/ Abrir prompt como admin e executar nssm install SistemaSenhas . Application Path: C:\Program Files\nodejs\node.exe Startup directory: C:\Sistemas\mvp-senhas Arguments: server.js Salvar e iniciar: nssm start SistemaSenhas . B10. Backup obrigatório O sistema guarda os dados do cliente em dois lugares distintos : O que Contém C:\Sistemas\mvp-senhas\data\state.json Usuários, guichês, salas, configurações, prioridades, motivos, senhas emitidas, histórico, auditoria C:\Sistemas\mvp-senhas\public\logo.png Logo do cliente (enviado pelo Admin) C:\Sistemas\mvp-senhas\.env Configuração local (porta, segredo de sessão) Configurar backup diário automático dos três itens acima . Sugestões: Robocopy + Task Scheduler agendado pra rodar diariamente; Cópia pra outro disco / drive de rede; Backup corporativo (Veeam, etc) incluindo essas pastas/arquivos. Manter pelo menos 7 cópias (uma por dia da última semana). Recomendado também 1 cópia mensal pra arquivamento. Exemplo de comando de backup (Robocopy) robocopy C:\Sistemas\mvp-senhas\data C:\Backup-Senhas\%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%\data /E copy C:\Sistemas\mvp-senhas\public\logo.png C:\Backup-Senhas\%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%\logo.png copy C:\Sistemas\mvp-senhas\.env C:\Backup-Senhas\%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%\.env Cria uma pasta com data do dia e copia os três artefatos. B11. Configuração inicial dentro do sistema Já logado como admin, configurar: Funcionários Administração → Funcionários : Não mexer no usuário admin — ele é reservado pra suporte da CEBI. Não trocar senha nem desativar. Cadastrar pelo menos um administrador do cliente (com login próprio, ex: nome do responsável pelo sistema na empresa). É esse usuário que o cliente vai usar pra gerenciar o sistema no dia a dia. Cadastrar os atendentes (perfil atendente ). Cada usuário recebe login próprio e senha inicial (pelo menos 6 caracteres). Vincular cada atendente a um guichê e sala padrão (opcional, mas recomendado). Combinar com o cliente que o dia a dia deve ser feito com os usuários dele — o admin só é usado por suporte em casos excepcionais. Guichês Administração → Guichês : Cadastrar os guichês físicos (ex: "Guichê 1", "Guichê 2"). Ativar/desativar conforme necessário. Salas Administração → Salas : Cadastrar as salas de atendimento. Vincular os atendentes que podem trabalhar em cada sala. Configurações gerais Administração → Configurações : Nome da empresa/órgão (aparece no painel e no topo da interface). Lógica de prioridade (FIFO / alternância configurável). Reset automático do dia (se quiser que zere automaticamente após X horas sem movimento). Outras opções (som, tempo de chamada, etc). Logo do cliente Administração → Configurações → Logo : Clicar em "Carregar logo" (ou área equivalente). Selecionar o arquivo de imagem do cliente (PNG recomendado, com fundo transparente). Confirmar o upload. O logo aparece automaticamente em: Topo da interface (todas as telas); Tela do Painel (TV); Tela do Totem/Recepção. Importante saber pra atualizações futuras : O logo do cliente é gravado diretamente como C:\Sistemas\mvp-senhas\public\logo.png no servidor. Quando você for atualizar o sistema (substituir a pasta public\ ), o logo do cliente precisa ser preservado — caso contrário ele será sobrescrito pelo logo padrão que vem no pacote. Ver o Manual de Atualização pra o procedimento correto. Backup recomendado: incluir public\logo.png na rotina de backup junto com o data\state.json . B12. Telas do sistema Cada terminal abre a tela conforme a função: Tela URL/Caminho Uso Recepção http://IP:3030 → Recepção Emitir senhas (totem ou recepcionista) Atendimento http://IP:3030 → Atendimento Atendente chama/finaliza senhas Painel (TV) http://IP:3030 → Painel TV grande mostrando senhas chamadas (com som) Histórico http://IP:3030 → Histórico Consulta histórico do dia Administração http://IP:3030 → Administração Só pra usuários admin Painel na TV Abrir o navegador na TV. Acessar http://IP_DO_SERVIDOR:3030 . Fazer login (pode criar um usuário específico tipo "painel" com permissão apenas de visualização). Entrar em Painel . Clicar uma vez na tela pra ativar o som (browsers bloqueiam áudio sem interação do usuário). Pressionar F11 pra tela cheia. B13. Validação final Antes de entregar pro cliente, testar: Emitir uma senha comum na Recepção. Chamar a senha em Atendimento de outro computador. Ver a senha sendo anunciada no Painel (com som). Finalizar a senha. Conferir o registro em Histórico. Reiniciar o servidor e confirmar que o sistema sobe sozinho. Confirmar backup do data\state.json . Resumo dos caminhos importantes Arquivo/pasta Para que serve C:\Sistemas\mvp-senhas\server.js Inicia o servidor C:\Sistemas\mvp-senhas\.env Configuração de porta, sessão, etc C:\Sistemas\mvp-senhas\data\state.json Banco de dados (fazer backup diário) C:\Sistemas\mvp-senhas\public\ Interface (HTML/JS/CSS gerados do React) C:\Sistemas\mvp-senhas\src\ Código do backend Node.js Problemas comuns "Funciona no servidor mas não abre nos outros computadores" Firewall não liberado (passo B7). IP do servidor mudou (servidor sem IP fixo). Considere reservar IP no DHCP. "Login não funciona depois de algumas horas" O sistema mantém sessão por 8 horas absolutas. Após esse tempo o usuário precisa fazer login de novo. Se o servidor reinicia, todas as sessões caem (comportamento esperado). "O servidor não sobe ao reiniciar" Verificar se a tarefa do Agendador / serviço NSSM está configurada (passo B9). Conferir se o node.exe está no PATH ou se o caminho completo foi usado na configuração do serviço. "Som do painel não funciona" Clicar uma vez na tela depois de abrir o Painel — é uma restrição dos navegadores. Conferir o volume do sistema operacional. Limitações desta versão Esta versão é adequada para um cliente/unidade em rede interna . Não é ideal para: vários clientes diferentes no mesmo portal (multi-tenancy); exposição pública na internet sem HTTPS/proxy reverso; alto volume (centenas de atendentes simultâneos); integração com banco corporativo (Oracle/SQL Server); controle avançado de infraestrutura. Para esses casos, planejar evolução pra arquitetura corporativa.