Ir para o conteúdo

33 — Checklist de teste efetivo e pendências

Registro consolidado para não falhar na validação do ambiente completo. Baseado na auditoria da VPS homologação 3.93.232.33 em 13/07/2026 + pendências do stack v1.9.0.

Como usar: marque [x] conforme concluir. Execute na ordem Alta → Média → Baixa dentro de cada seção.


Resumo da auditoria (13/07/2026 — atualizado 14/07/2026)

Resultado Detalhe
validate-install.sh --external 29 OK · 3 avisos · 0 falhas
diagnose-stack.sh --brief Core 7/7 + Opcional 4/4 no ar
HTTP externo Portal, Supervisor, Monitor, Webphone, Energy, Issabel → 200
Monitor API :8090/health → 200 (DLL 13/jul)
Base Histórica :8091/health → 200 · tabelas SQL aplicadas
Licença API :8092/health → 200 · UI /licenca/
Git na VPS Commit alinhado após pull
Scripts 53 .sh — usar chmod +x após pull
Pendências não bloqueantes AMI CTI, admin SQL bootstrap, senhas padrão homolog

Stack completa na VPS homolog 3.93.232.33: SQL, CTI, Base Histórica, Supervisor, Portal, Monitor, Webphone, Energy, Licença, Portainer, Issabel.


🔴 ALTA — Bloqueia teste efetivo

Sem estes itens, funcionalidades prometidas na v1.9 não validam de verdade.

A1. Monitor API CTI (:8090) — Dashboard /cti/ sem dados

Sintoma na VPS: curl :8090/health falha; /api/cti/monitor/snapshot devolve HTML do hub, não JSON. Causa: LorentzCTI.dll de 09/jun/2026 (sem Monitor API); LORENTZ_CTI_MONITOR_API_KEY ausente no .env; container sem porta 8090 publicada.

⚠️ build-lorentz-cti-zip.sh não roda na VPS — exige ../server/LorentzCTI/ (monorepo + .NET SDK 9 no PC de dev). Na VPS use só extract-lorentz-cti-publish.sh após copiar o net9.0.zip.

Passo 1 — Gerar zip no PC de desenvolvimento (Windows/WSL)

Estrutura obrigatória:

omnichannel/
├── lorentz-vps-stack/          ← este repo
└── server/LorentzCTI/          ← código-fonte CTI
# No PC (nao na VPS):
cd D:\omnichannel\lorentz-vps-stack   # Windows — ou ~/omnichannel/ no WSL
# Exige D:\omnichannel\server\LorentzCTI\ (clone do monorepo omnichannel)
./scripts/build-lorentz-cti-zip.sh
# → resources/net9.0.zip

Se server/LorentzCTI não existir no PC: clone o monorepo omnichannel completo ou copie a pasta server/LorentzCTI do repositório de desenvolvimento antes de compilar.

Passo 2 — Enviar para a VPS

PowerShell (Windows) — caminho absoluto; ~ no PowerShell aponta para C:\Users\..., não para D:\omnichannel:

cd D:\omnichannel\lorentz-vps-stack

# Confirme que o zip existe (gitignore — nunca vem do git clone):
Get-Item .\resources\net9.0.zip

scp -i $env:USERPROFILE\.ssh\issabel-key.pem `
  .\resources\net9.0.zip `
  ubuntu@3.93.232.33:~/omnichannel/lorentz-vps-stack/resources/

Git Bash / WSL:

cd /d/omnichannel/lorentz-vps-stack
scp -i ~/.ssh/issabel-key.pem resources/net9.0.zip \
  ubuntu@3.93.232.33:~/omnichannel/lorentz-vps-stack/resources/

SSH: sempre -i ~/.ssh/issabel-key.pem (nome completo com .pem). Sem chave → Permission denied (publickey).

Se net9.0.zip não existir no PC, rode o Passo 1 antes — ou obtenha o zip de outro dev / CI. O arquivo está no .gitignore e não é baixado com git clone.

Passo 3 — Aplicar na VPS

  • [x] No .env da VPS — chaves API (defaults do compose funcionam; recomendado personalizar)
  • [x] ./scripts/render-config.sh
  • [x] ./scripts/extract-lorentz-cti-publish.sh resources/net9.0.zip
  • [x] docker compose up -d --build lorentz-cti
  • [x] Validar: curl -fsS http://127.0.0.1:8090/health
  • [x] Validar: curl -fsS -H "X-Monitor-Api-Key: ..." http://127.0.0.1:8099/api/cti/monitor/snapshot | head -c 80 → JSON, não <!DOCTYPE
  • [ ] Abrir https://orbitall.app/cti/ — grid de agentes/dispositivos atualiza (depende AMI + agentes logados)

Doc: 07-lorentz-cti-servidor.md · 15-distribuicao-equipe-suporte.md · 20-portal-orbitall.md


A2. .env incompleto — bloqueia deploy de apps opcionais

Sintoma: deploy-lorentz-energy.sh falha com LORENTZ_BASEHISTORICA_API_KEY missing. Causa: Docker Compose valida todo o arquivo, mesmo com --profile energy.

  • [ ] Completar .env a partir de .env.example:
    LORENTZ_BASEHISTORICA_API_KEY=ChangeMe_BaseHistorica2026!
    LORENTZ_LICENCA_API_KEY=ChangeMe_LicencaApi2026!
    LORENTZ_CTI_MONITOR_API_KEY=ChangeMe_MonitorApi2026!
    
  • [ ] ./scripts/render-config.sh
  • [ ] Confirmar: grep LORENTZ_BASEHISTORICA .env não vazio

Doc: 27-instalar-app-opcional-energy.md · 32-instalar-apps-core.md


A3. Scripts na VPS — sincronizar e tornar executáveis

Relato: “diagnose-stack.sh e outros scripts não estão na VPS.”

Verificação em 13/07/2026 (SSH 3.93.232.33): os scripts existem em ~/omnichannel/lorentz-vps-stack/scripts/. O erro usual é permissão ou caminho errado, não arquivo ausente.

Verificação Resultado esperado
Caminho ~/omnichannel/lorentz-vps-stack ✅ — ~/lorentz-vps-stack não existe
diagnose-stack.sh Arquivo presente (~13 KB)
Total .sh 53 scripts
Permissão após git pull -rw-rw-r-- ❌ → precisa chmod +x
Após chmod +x -rwxrwxr-x ✅ — ./scripts/diagnose-stack.sh --brief funciona

Sintomas vs causa

Sintoma Causa real Solução
./scripts/diagnose-stack.sh → Permission denied Sem bit +x (git/Windows não preserva) chmod +x scripts/*.sh
./scripts/... → No such file Diretório errado cd ~/omnichannel/lorentz-vps-stack
Script “antigo” / doc 27–33 ausente VPS sem git pull git pull origin main
post-update.sh não encontrado Commit local ainda não na VPS git pull ou sync-stack-to-vps.sh

Checklist A3

  • [ ] Caminho correto: cd ~/omnichannel/lorentz-vps-stack
  • [ ] git pull origin main (commit esperado: alinhado com origin/main)
  • [ ] Obrigatório após pull: chmod +x scripts/*.sh
  • [ ] (Preferencial) ./scripts/post-update.sh — aplica +x em todos os .sh
  • [ ] Validar presença: ls scripts/diagnose-stack.sh scripts/lib-compose-env.sh scripts/open-aws-port-8443.sh
  • [ ] Validar execução: test -x scripts/diagnose-stack.sh && ./scripts/diagnose-stack.sh --brief
  • [ ] Alternativa sem +x: bash scripts/diagnose-stack.sh --brief

Na VPS — copiar e colar

cd ~/omnichannel/lorentz-vps-stack
git pull origin main
chmod +x scripts/*.sh
# quando disponível no repo:
# ./scripts/post-update.sh

./scripts/diagnose-stack.sh --brief
./scripts/diagnose-stack.sh --problems

Do PC — sem git pull na VPS

# Git Bash / WSL no PC de dev:
./scripts/sync-stack-to-vps.sh -i ~/.ssh/issabel-key.pem ubuntu@3.93.232.33
# Envia stack, preserva .env remoto e roda chmod +x na VPS automaticamente

Docs: scripts/README.md · INSTALACAO-SUPORTE.md §11 (atualizar após git pull)


A4. Senhas padrão em homologação

Risco: credenciais de ENTREGA-V1.9 ainda ativas.

  • [ ] Trocar MONITOR_ADMIN_PASSWORD no .env → docker compose up -d monitor
  • [ ] Trocar senha admin do Supervisor (8080)
  • [ ] Trocar MSSQL_SA_PASSWORD se ainda for exemplo (requer replanejar conexões)

Doc: ENTREGA-V1.9.md · 17-dashboard-monitoramento.md


🟠 MÉDIA — Core incompleto ou integração degradada

M1. Base Histórica (lorentz-basehistorica :8091)

Status VPS (13/jul 23:35): container healthy · tabelas CTI_BASEHISTORICA_* criadas.

  • [x] ./scripts/build-lorentz-basehistorica-zip.sh (dev)
  • [x] Transferir basehistorica.zip → VPS (scp -i ~/.ssh/issabel-key.pem)
  • [x] ./scripts/extract-lorentz-basehistorica-publish.sh
  • [x] ./scripts/init-basehistorica-tables.sh
  • [x] docker compose up -d --build lorentz-basehistorica
  • [x] curl -fsS http://127.0.0.1:8091/health
  • [ ] UI Supervisor att_basehistorica.php (repo supervisor) — testar quando disponível

Doc: 32-instalar-apps-core.md#3-base-historica


M2. AMI Asterisk — CTI sem eventos recentes

Sintoma: validate-install avisa CTI sem AMI / sem sessões.

  • [ ] Revisar manager_custom.conf no Issabel — permitir rede Docker (172.16.0.0/12 ou bridge do compose)
    ./scripts/configure-issabel-ami-docker.sh --restart-cti
    
  • [ ] Confirmar CTI_Impacta_Ip / AMI user no LorentzCTI.ini
  • [ ] ./scripts/test-ami.py ou MonitorOPS → Diagnóstico
  • [ ] Log CTI: docker logs lorentz-cti --tail 100 — eventos AMI

Doc: 09-integracao-e-redes.md · 12-troubleshooting.md


M3. PWA Portal — teste completo em estação Windows

Status VPS: HTTPS :8443 responde 200.

  • [ ] Security Group: porta 8443 aberta (./scripts/open-aws-port-8443.sh)
  • [ ] Estação Windows: irm http://<IP>:8099/assets/install-portal-cert.ps1 | iex
  • [ ] Abrir https://<IP>:8443/ — botão ⊕ Instalar App visível
  • [ ] Instalar PWA e abrir app standalone

Doc: 20-portal-orbitall.md


M4. Webphone — teste de chamada real

Status VPS: container healthy, HTTP 200.

  • [ ] Issabel WSS configurado: ./scripts/configure-issabel-wss.sh
  • [ ] Ramal WebRTC criado no Issabel
  • [ ] WEBRTC_EXTENSION / WEBRTC_PASSWORD no .env → render-config.sh
  • [ ] Abrir http://<IP>:8081/ — registro SIP + chamada de teste
  • [ ] Áudio bidirecional OK

Doc: 29-instalar-webphone.md · 14-issabel-webrtc-wss.md


M5. Autostart após reboot

  • [ ] sudo ./scripts/install-systemd-stack.sh
  • [ ] sudo reboot (janela de manutenção)
  • [ ] Após voltar: docker compose ps + Issabel systemctl status issabel
  • [ ] ./scripts/validate-install.sh --external

Doc: 11-operacao-e-manutencao.md


🟡 BAIXA — Opcionais e cosmético

B1. Licença API (profile licenca)

Status VPS (13/jul 23:35): healthy · UI http://3.93.232.33:8099/licenca/

  • [x] ./scripts/extract-lorentz-licenca-publish.sh (licenca.zip já na VPS)
  • [x] ./scripts/deploy-licenca.sh
  • [ ] ./scripts/build-lorentz-licenca-zip.sh (dev) — rebuild quando houver release novo
  • [ ] UI: gerar .lic de teste e validar no CTI/URA

Doc: 30-instalar-licenca.md · 23-plano-licenca-api-linux.md


B2. Portainer (:9443 unhealthy)

Sintoma: health unhealthy — timeout de senha admin (não impede uso após restart).

  • [ ] docker restart lorentz-portainer
  • [ ] Abrir https://<IP>:9443/ em 5 min — criar senha admin
  • [ ] Restringir SG ao IP da TI

Doc: 31-instalar-portainer.md


B3. Lorentz Energy — OK na VPS (PHPMaker)

Status (14/jul): healthy; login PHPMaker em https://energy.orbitall.app/; MariaDB com dump lorentzenergy.sql.

  • [x] ./scripts/deploy-lorentz-energy.sh
  • [x] ./scripts/import-energy-db.sh
  • [x] Link hub Orbitall (energy.orbitall.app)
  • [ ] Validar fluxo completo de negócio (cadastros, relatórios)

Doc: 27-instalar-app-opcional-energy.md


B4. Supervisor — att_config.php completo + licença Linux

Status (14/jul): template ~127 defines; login https://supervisor.orbitall.app/login.php → 200; sem fatals EW_SHOWDIALOG_CENTER / EW_HABILITAR_CLIENTEWEB.

  • [x] config/templates/att_config.php.template completo (merge lab + api + sac_config)
  • [x] Mount att_config.php :rw para sac_config.php
  • [x] apply-supervisor-host-id-patch.sh + MacAddress licença (show-stack-host-id.sh)
  • [x] Patch att_licenca.php no git — branch oncoguia-vps em lorentz-supervisor (commit 8b40ceb)

Doc: 08-supervisor-web.md · 16-atualizacao-supervisor-web.md · 12-troubleshooting.md


B5. Tema Issabel lorentzpbx

  • [ ] ./scripts/deploy-issabel-theme.sh ou MonitorOPS → Ferramentas
  • [ ] Limpar cache Smarty se visual não atualizar

Doc: README — seção Tema Issabel


Checklist de teste por app (marque todos)

Use após corrigir itens Alta.

# App URL / teste OK
1 SQL Server docker compose ps sqlserver healthy [x]
2 Lorentz CTI Concentre TCP :3000 [x]
3 Lorentz CTI Agentes TCP :8000 [x]
4 Monitor API curl :8090/health [x]
5 Base Histórica curl :8091/health [x]
6 Supervisor http://<IP>:8080/login.php 200 [x]
7 Portal HTTP http://<IP>:8099/ 200 [x]
8 Portal HTTPS/PWA https://<IP>:8443/ + Instalar App [ ]
9 CTI Dashboard /cti/ com dados JSON ao vivo [x] API JSON OK · grid ao vivo depende AMI
10 MonitorOPS http://<IP>:9090/ login [x]
11 Webphone http://<IP>:8081/ + chamada [ ]
12 Energy http://<IP>:8082/ 200 [x]
13 Issabel https://<IP>/ 200 [x]
14 Issabel SIP registro ramal / tronco [ ]
15 Licença UI /licenca/ [x]
16 Portainer https://<IP>:9443/ [x]

Comando único:

./scripts/validate-install.sh --external
./scripts/diagnose-stack.sh --problems

Roadmap — não bloqueia homologação atual

Item Prioridade negócio Doc
Licença API Fase 3 (persistência SQL + golden tests) Média 23
UI Base Histórica no Supervisor Média monorepo att_basehistorica.php
Domínio orbitall.app + Let's Encrypt Média 22 · 34
Planta B Impacta CSTA Baixa 21
Publicar docs MkDocs em nginx (site/) Baixa 26
Integrar build-docs.sh no pacote dist Baixa 15
Commit/push post-update.sh e docs na VPS Alta (dev) git pull na VPS após push

Ordem de execução recomendada (copiar)

# === Na VPS ===
cd ~/omnichannel/lorentz-vps-stack
git pull origin main
chmod +x scripts/*.sh          # A3 — obrigatório após pull
# ./scripts/post-update.sh     # A3 — equivalente (quando existir no repo)

# 1. .env completo
nano .env   # A2 — chaves BASEHISTORICA, MONITOR, LICENCA

# 2. CTI com Monitor API (zip gerado no PC — ver A1)
#    NA VPS nao rode build-lorentz-cti-zip.sh (precisa server/LorentzCTI no monorepo)
./scripts/render-config.sh
./scripts/extract-lorentz-cti-publish.sh resources/net9.0.zip
docker compose up -d --build lorentz-cti

# 3. Base Histórica (se zip disponível)
./scripts/extract-lorentz-basehistorica-publish.sh resources/basehistorica.zip
./scripts/init-basehistorica-tables.sh
docker compose up -d --build lorentz-basehistorica

# 4. Opcionais (se ainda não implantados)
./scripts/deploy-webphone.sh
./scripts/deploy-lorentz-energy.sh
./scripts/extract-lorentz-licenca-publish.sh resources/licenca.zip
./scripts/deploy-licenca.sh
./scripts/deploy-portainer.sh

# 5. Validar
./scripts/validate-install.sh --external
./scripts/diagnose-stack.sh --problems

Histórico

Data Evento
2026-07-13 Criado após auditoria SSH VPS 3.93.232.33 + consolidação pendências v1.9
2026-07-13 Stack completa homolog 3.93.232.33 — core 7/7 + opcionais 4/4; docs alinhados (§6.3 INSTALACAO-SUPORTE, init-basehistorica-tables.sh)

Avisos restantes (não bloqueiam containers)

  • AMI Asterisk — CTI sem eventos recentes (manager_custom.conf)
  • Bootstrap SQL — usuário admin ausente
  • Testes manuais pendentes — PWA :8443, chamada Webphone, dashboard /cti/ com dados ao vivo

Comandos de referência

PC (WSL) — builds + envio:

export PATH="$HOME/.dotnet:$PATH"
cd /mnt/d/omnichannel/lorentz-vps-stack
./scripts/build-lorentz-cti-zip.sh
./scripts/build-lorentz-basehistorica-zip.sh

scp -i ~/.ssh/issabel-key.pem resources/{net9.0,basehistorica}.zip \
  ubuntu@3.93.232.33:~/omnichannel/lorentz-vps-stack/resources/

VPS — levantar tudo:

cd ~/omnichannel/lorentz-vps-stack
chmod +x scripts/*.sh
./scripts/render-config.sh
./scripts/extract-lorentz-cti-publish.sh resources/net9.0.zip
./scripts/extract-lorentz-basehistorica-publish.sh resources/basehistorica.zip
./scripts/init-basehistorica-tables.sh
docker compose up -d --build
./scripts/deploy-webphone.sh
./scripts/deploy-lorentz-energy.sh
./scripts/extract-lorentz-licenca-publish.sh resources/licenca.zip
./scripts/deploy-licenca.sh
./scripts/validate-install.sh --external

Guia completo: INSTALACAO-SUPORTE.md §6.3 · checklist: docs/33-checklist-teste-ambiente.md