# Deploy

## Opções suportadas

- Apache com `deploy/apache-vhost.conf` ou `deploy/apache-alias.conf`
- Nginx + PHP-FPM com `deploy/nginx-site.conf` ou `deploy/nginx-subpath.conf`
- systemd com `deploy/systemd/*.service`, `deploy/systemd/*.timer` e os targets de agrupamento do topo
- Supervisor com `deploy/supervisor/*.conf`

## Pré-requisitos

- PHP 8.2+
- extensões `dom`, `libxml`, `pdo`, `pdo_mysql`, `mbstring`, `redis`, `pcntl`, `opcache`, `xml`, `zip` e `json` (`php-xml` no appliance)
- MariaDB/MySQL 10.6+
- cliente `mysql`, `mysqldump`, `composer` e `tar`
- acesso ao banco central aprovado

## Sequência mínima repetível

1. copiar `.env.example` para `.env`
2. ajustar URLs, credenciais e segredos reais
3. executar `bash scripts/install.sh`
4. revisar `php scripts/deploy-preflight.php --runtime=http --strict`
5. aplicar `bash scripts/migrate.sh`
6. habilitar `platform-queue.service`, `platform-scheduler.timer` e `platform-backup.timer`
7. publicar o vhost compartilhado com o portal usando Nginx/Apache + PHP-FPM; somente `/nvr/index.php` e `/nvr/launch.php` devem apontar para o bridge publico do portal, com assets por aliases explicitos

## Subdiretório em /public

- layout padrão desta rodada: `INSTALL_ROOT=/var/www/portal-principal/public/nvr`
- prefixo padrão desta rodada: `__NVR_LOCATION_PREFIX__` (normalmente `/nvr`)
- os templates aceitam render via `bash ../scripts/install-services.sh`, que substitui `__INSTALL_ROOT__`, `__PORTAL_PUBLIC_ROOT__` e `__NVR_LOCATION_PREFIX__`
- para caminhos como `/sistema/nvr`, ajuste `APP_BASE_PATH`, `NVR_LOCATION_PREFIX` e `INSTALL_ROOT` antes da renderização
