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.
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_SECRETe restringirCORS_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)¶
Opcional: incluir no release completo:
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:
- Faz backup em
dist/supervisor-backup-*.tar.gz - Substitui
../supervisor/ - Roda
render-config.sh - Reinicia container e testa HTTP 200 em
/login.php
Reinício rápido (sem trocar arquivos):
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:
- Lab:
apply-supervisor-host-id-patch.sh+build-supervisor-package.sh - VPS: backup
.env,../supervisor/,config/runtime/att_config.php→dist/ - Envia stack sem
.envlocal (restaura.envremoto) - Envia
resources/supervisor.tar.gz - VPS:
update-supervisor-web.sh(backup extra + render + HTTP 200) - Exibe MacAddress licença (
show-stack-host-id.sh)
Nunca copie
.envouatt_config.phpdo 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 patchatt_licenca.phpse 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 dosupervisor.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
ougit pullna VPS (se repo remoto atualizado) - [ ] Confirmar
.envda VPS intacto (URLsorbitall.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 '