| Cliente | Loja | Situação | Vence | Dias | Último contato | Versão |
|---|
| Vence | Dias | Cliente | Loja | Valor |
|---|
| Cliente | Situação | Mensal | Recebido no período | Pagtos | Último pagamento | Vence |
|---|
| Login | Nome | Nível | 2FA | Ativo | Último login |
|---|
Você publica uma versão nova do PDV BMO aqui no painel e cada cliente recebe a atualização sozinho — sem visita, sem TeamViewer. O PDV baixa o pacote, confere se ele é legítimo, aplica de madrugada, reinicia e confirma. Se algo der errado, volta sozinho para a versão anterior.
banco.db), nas configurações (.env), nos logs ou nos backups do cliente. Só os arquivos do sistema são trocados.No seu PC, na pasta do projeto do PDV (hamburgueria-pdv), com o PowerShell:
ADMIN_TOKEN do .env da VPS):$env:LICENCAS_ADMIN_TOKEN = "cole-o-token-aqui"
.\build-cliente.ps1 -Versao 1.2.0 -Registrar -Notas "Correções no fechamento de conta"O script atualiza o
package.json, monta dist\pdv-bmo-1.2.0.zip (sem node_modules, bancos, .env e chaves), calcula o hash de integridade e envia tudo ao servidor.Se preferir, rode o build sem -Registrar e envie o ZIP em Integrações → Enviar pacote. A versão e o hash são lidos do versao.json que está dentro do ZIP.
1.1.0 → 1.1.1 ou 1.2.0). O PDV só aceita atualizações para versões superiores à instalada.Publicar não muda nada nos clientes. A atualização só é oferecida quando você libera:
Para liberar já no build, use -Liberar: .\build-cliente.ps1 -Versao 1.2.0 -Liberar.
atualizacoes\staging-<v>\, confere o hash de integridade dos arquivos principais e roda node --check nos .js do servidor. Se tudo bate: estado BAIXADA.atualizacoes\backup-<v>\, copia os novos por cima (só o que mudou) e marca APLICADA.reiniciar-servidores.ps1) quando o PDV subiu pelo boot do Windows. Leva alguns segundos; as telas abertas reconectam.| Estado | Significa |
|---|---|
| BAIXANDO | Download em andamento |
| BAIXADA | Pacote verificado, aguardando a janela (04–06h) ou um "aplicar agora" |
| APLICADA | Arquivos trocados; o servidor está reiniciando |
| ATUALIZADO | Versão nova no ar e confirmada |
| FALHOU | Alguma verificação recusou o pacote — o motivo aparece na ficha; nada foi alterado |
| REVERTIDA | A versão nova não subiu em 3 tentativas; os arquivos anteriores foram restaurados |
Duas formas de não esperar as 04:00 — ideais fora do horário de atendimento, porque o sistema fica alguns segundos fora do ar:
1.1.0 → 1.2.0 BAIXADA, APLICADA, FALHOU…O pacote é recusado — sem alterar nada no cliente — quando:
auth.js, licenca.js e server.js difere do publicado;.js principal tem erro de sintaxe (node --check);package.json mudaram, ou o binário vendor\node_sqlite3.node é diferente — nesses casos a atualização exige o instalador (instalar-novo-computador.bat).Depois de aplicar, o servidor do PDV conta cada tentativa de boot. Se a versão nova não chegar a responder em 3 tentativas, os arquivos do backup são restaurados, o estado vira REVERTIDA e o servidor reinicia com a versão anterior. O painel recebe o evento "⚠ PDV reverteu a atualização".
| Sintoma | Causa provável | O que fazer |
|---|---|---|
| Versão não aparece para o cliente | Está retida, ou o número não é maior que o instalado, ou o PDV ainda não fez contato | Liberar; conferir o número; no PDV, Licença → "Verificar agora" |
| FALHOU com "dependências mudaram" / "binário do SQLite" | O pacote precisa de instalação completa | Instalar no cliente com o ZIP e o instalar-novo-computador.bat |
| FALHOU com "SHA-256" ou "integridade" | Download corrompido ou pacote trocado | Pedir "Verificar agora" no PDV (baixa de novo); se persistir, republicar a versão |
| APLICADA há muito tempo | O servidor do PDV não voltou (PC desligado, ou reinício não concluiu) | Ligar o PC / abrir o PDV; se a porta 3000 não subir, o rollback acontece nas próximas tentativas |
Erro 413 ao enviar o pacote | Limite de upload do nginx | Já ajustado para 64 MB no vhost; para pacotes maiores, aumente client_max_body_size |
| PDV aparece ADULTERADO logo após atualizar | O hash publicado não é o dos arquivos entregues (build antigo registrado) | Rodar o build de novo com -Registrar na mesma versão |
Resumo das demais operações do painel. Cada ação fica registrada no histórico com o usuário que a fez.
BMO-XXXX-XXXX.instalar-novo-computador.bat (como Administrador), iniciar-manual.bat, login admin/admin123, Configurações → Licença → digitar o código → Ativar.Cada PDV envia um hash de auth.js, licenca.js e server.js. O servidor compara com o hash da versão que o PDV diz ter. ADULTERADO significa que alguém editou esses arquivos no cliente; VERSÃO ? significa que aquela versão não foi registrada (rode o build com -Registrar). A adulteração não bloqueia sozinha — você decide (ligar, suspender).
node cli.js senha-painel "NovaSenha123" e node cli.js usuario-2fa-off admin.