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.
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 direto (SCP/rsync) — ambiente de dev¶
Sem tar.gz, para VPS de homologação:
# Windows — arquivos alterados
scp -i sua-chave.pem -r d:\omnichannel\supervisor\cti_agenteslist.php `
usuario@IP:~/omnichannel/supervisor/
# Linux — pasta inteira
rsync -avz --exclude='.git' --exclude='vendor/.cache' \
./supervisor/ usuario@IP:~/omnichannel/supervisor/
ssh usuario@IP 'cd ~/omnichannel/lorentz-vps-stack && docker compose restart supervisor'
O que não sobrescrever na atualização¶
| Pasta/arquivo | Motivo |
|---|---|
supervisor/uploads/ |
Uploads dos usuários (volume Docker) |
supervisor/log/ |
Logs (volume Docker) |
lorentz-vps-stack/.env |
Credenciais do cliente |
config/runtime/ |
Regenerado por render-config.sh |
Os volumes supervisor-uploads e supervisor-log persistem no Docker — atualizar PHP não apaga uploads.
Checklist pós-alteração¶
- [ ]
render-config.shse.envou templates mudaram - [ ]
composer installsecomposer.jsonmudou - [ ] SQL aplicado se schema mudou
- [ ]
docker compose restart supervisorouupdate-supervisor-web.sh - [ ] Login
http://<IP>:8080/login.php→ HTTP 200 - [ ] Módulo alterado testado manualmente
- [ ] Phoenix/CTI: `docker exec lorentz-supervisor bash -c '