Ir para o conteúdo

Atualização do Supervisor web (PHP)

Guia para alterações no código-fonte de supervisor/ e como propagar para VPS em produção/homologação — incluindo equipe de suporte sem monorepo completo.

Relacionado: 08-supervisor-web.md (deploy inicial), 15-distribuicao-equipe-suporte.md (pacote tar.gz).


Como o Supervisor roda no stack

Host VPS
└── ../supervisor/          ← código PHP (bind mount)
    └── montado em /var/www/html no container lorentz-supervisor

lorentz-vps-stack/
├── config/runtime/
│   ├── att_config.php      ← gerado (SQL, Phoenix, URL)
│   └── api-att_config.php
└── docker/supervisor/      ← imagem Apache+PHP+sqlsrv (raramente muda)
Camada Onde altera Rebuild container?
PHP (*.php, JS, CSS) supervisor/ Não — basta sync + restart
Config SQL/Phoenix lorentz-vps-stack/.env + render-config.sh Não
Dependências Composer supervisor/vendor/ Não (se vendor incluído no pacote)
Extensões PHP / Dockerfile docker/supervisor/Dockerfile Sim — docker compose build supervisor
Schema SQL SQL Server Scripts/migrations separados

Tipos de alteração

1. Só arquivos PHP / front-end (caso mais comum)

Exemplos: telas cti_*, sac_*, att_*, AJAX, relatórios.

Desenvolvimento:

# Editar em omnichannel/supervisor/
# Testar localmente se houver ambiente PHP, ou direto na VPS de dev

VPS (bind mount — efeito imediato nos arquivos, recomendado restart Apache):

cd ~/omnichannel/lorentz-vps-stack
docker compose restart supervisor
curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8080/login.php

2. Configuração (URL, SQL, Phoenix)

Altere lorentz-vps-stack/.env, não edite att_config.php manualmente na VPS:

cd ~/omnichannel/lorentz-vps-stack
nano .env
./scripts/render-config.sh
docker compose restart supervisor

Template: config/templates/att_config.php.template (~127 defines — SQL, Phoenix, SMTP, monitor, qualificação, CRM, pesquisa, 3CX).

Não edite config/runtime/att_config.php na VPS para infraestrutura — use .env + render. Para parâmetros operacionais (PowerDialing, flags de monitor, SMTP), a UI sac_config.php grava no runtime montado (:rw).

Origem da config Onde alterar Sobrevive a render-config.sh?
SQL, URL, Phoenix, admin .env + template Sim (regenera do template)
Parâmetros SAC/Phoenix na UI sac_config.php Não — render sobrescreve
JWT / CORS API supervisor/api/config.php Sim (fora do template)

2b. Licenciamento Linux (patch att_licenca.php)

Após clonar/atualizar ../supervisor/ na VPS Linux:

cd ~/omnichannel/lorentz-vps-stack
bash scripts/apply-supervisor-host-id-patch.sh   # uma vez por checkout supervisor
bash scripts/render-config.sh                    # gera stack-host-id se necessário
bash scripts/show-stack-host-id.sh               # MacAddress para Gerador .lic
docker compose restart supervisor

Sem o patch: erro sh: 1: VOL: not found em att_licenca.php.

Repo Supervisor: araguaci/lorentz-supervisor — branch VPS Orbitall/Hostinger: lorentz-vps. Deploy legado Oncoguia: oncoguia-vps.

# Na VPS — commita só att_licenca.php (não inclui outros arquivos modificados)
bash scripts/commit-supervisor-licenca-vps.sh
bash scripts/commit-supervisor-licenca-vps.sh --push

No lab, aplique o mesmo patch antes de empacotar: apply-supervisor-host-id-patch.sh → build-supervisor-package.sh.

3. Dependências Composer

Se composer.json mudou:

cd ~/omnichannel/supervisor
composer install --no-dev --optimize-autoloader
cd api && composer install --no-dev --optimize-autoloader

Inclua vendor/ no pacote enviado ao suporte (o build-supervisor-package.sh copia tudo exceto exclusões do tar — vendor é incluído por padrão).

4. Dockerfile / extensões PHP

Exemplos: nova extensão pecl, versão PHP, ODBC.

cd ~/omnichannel/lorentz-vps-stack
docker compose build supervisor
docker compose up -d supervisor

Distribua novo pacote stack ou instrua suporte a puxar atualização de lorentz-vps-stack/docker/.

5. API JWT / CORS

Arquivo supervisor/api/config.php — não é gerado pelo template.

  • Desenvolvimento: commitar alterações e incluir no pacote supervisor
  • Produção: trocar JWT_SECRET e restringir CORS_ALLOWED_ORIGINS

6. Banco de dados (novas tabelas/colunas)

Alterações em módulos PHP que exigem schema SQL:

  • Rodar scripts em supervisor/api/scripts/ ou restore .bak
  • Ver 05-sql-server.md
  • Reiniciar Supervisor não aplica schema — executar SQL separadamente

Fluxo desenvolvimento → suporte

Passo 1 — Desenvolver e validar

cd omnichannel/supervisor
# ... alterações ...
cd ../lorentz-vps-stack
./scripts/render-config.sh
docker compose restart supervisor
./scripts/validate-install.sh

Passo 2 — Gerar pacote só Supervisor (patch)

./scripts/build-supervisor-package.sh
# → resources/supervisor.tar.gz

Opcional: incluir no release completo:

./scripts/build-dist-package.sh <versao>

Passo 3 — Entregar ao suporte

Entrega Quando
supervisor.tar.gz apenas Hotfix PHP / telas
lorentz-deploy-*.tar.gz completo Stack + CTI + Supervisor + scripts

Enviar SHA256 (gerado pelo build-supervisor-package.sh ou MANIFEST.json).

Passo 4 — Suporte aplica na VPS

cd ~/omnichannel/lorentz-vps-stack
# Copiar supervisor.tar.gz para resources/
./scripts/update-supervisor-web.sh resources/supervisor.tar.gz

O script:

  1. Faz backup em dist/supervisor-backup-*.tar.gz
  2. Substitui ../supervisor/
  3. Roda render-config.sh
  4. Reinicia container e testa HTTP 200 em /login.php

Reinício rápido (sem trocar arquivos):

./scripts/update-supervisor-web.sh --restart-only

Sync lab → VPS (checklist único)

Fluxo mais seguro quando há alterações em fontes PHP (../supervisor/) e no stack (lorentz-vps-stack/).

Automatizado (recomendado)

No PC / laboratório (Git Bash ou WSL):

cd ~/omnichannel/lorentz-vps-stack   # ou D:\omnichannel\lorentz-vps-stack no Git Bash
chmod +x scripts/sync-lab-to-vps-safe.sh

# Sync completo: stack + supervisor.tar.gz + validacao
./scripts/sync-lab-to-vps-safe.sh -i ~/.ssh/issabel-key.pem ubuntu@3.93.232.33

# So stack (templates, compose, scripts) — sem PHP
./scripts/sync-lab-to-vps-safe.sh --stack-only -i ~/.ssh/key.pem ubuntu@HOST

# So PHP — stack ja atualizado na VPS
./scripts/sync-lab-to-vps-safe.sh --supervisor-only -i ~/.ssh/key.pem ubuntu@HOST

# Usar supervisor.tar.gz ja gerado
./scripts/sync-lab-to-vps-safe.sh --no-build -i ~/.ssh/key.pem ubuntu@HOST

O script sync-lab-to-vps-safe.sh:

  1. Lab: apply-supervisor-host-id-patch.sh + build-supervisor-package.sh
  2. VPS: backup .env, ../supervisor/, config/runtime/att_config.php → dist/
  3. Envia stack sem .env local (restaura .env remoto)
  4. Envia resources/supervisor.tar.gz
  5. VPS: update-supervisor-web.sh (backup extra + render + HTTP 200)
  6. Exibe MacAddress licença (show-stack-host-id.sh)

Nunca copie .env ou att_config.php do lab para a VPS manualmente.

Checklist manual (se preferir passo a passo)

Fase A — Laboratório (antes de enviar)

  • [ ] Alterações PHP testadas no lab (docker compose restart supervisor + login)
  • [ ] Commit no repo supervisor/ (incluir patch att_licenca.php se Linux/Docker)
  • [ ] Commit no repo lorentz-vps-stack/ (templates, compose, scripts)
  • [ ] bash scripts/apply-supervisor-host-id-patch.sh
  • [ ] bash scripts/build-supervisor-package.sh → anotar SHA256 do supervisor.tar.gz

Fase B — VPS (backups)

  • [ ] Backup .env: cp .env ~/lorentz-vps.env.bak
  • [ ] Backup supervisor: tar -czf dist/supervisor-backup-manual.tar.gz -C ~/omnichannel supervisor
  • [ ] Se usou sac_config.php: cp config/runtime/att_config.php dist/att_config-antes-render.php

Fase C — Enviar stack

  • [ ] ./scripts/sync-stack-to-vps.sh -i key.pem ubuntu@HOST
    ou git pull na VPS (se repo remoto atualizado)
  • [ ] Confirmar .env da VPS intacto (URLs orbitall.app, senhas produção)

Fase D — Enviar PHP

  • [ ] scp resources/supervisor.tar.gz ubuntu@HOST:~/omnichannel/lorentz-vps-stack/resources/
  • [ ] Na VPS: bash scripts/update-supervisor-web.sh resources/supervisor.tar.gz

Fase E — Validar na VPS

  • [ ] curl -sI http://127.0.0.1:8080/login.php → 200
  • [ ] bash scripts/show-stack-host-id.sh — MacAddress licença inalterado
  • [ ] ./scripts/validate-install.sh --brief
  • [ ] Testar telas/módulos alterados
  • [ ] Phoenix: `docker exec lorentz-supervisor bash -c '