# Instalação no cPanel Napoleon

Este ZIP já contém o build standalone e as dependências necessárias. Não envie um arquivo `.env` local e não é necessário executar `npm install`.

## 1. Criar e importar o banco

1. No cPanel, abra **MySQL Databases**.
2. Crie um banco e um usuário MySQL. O cPanel normalmente acrescenta o prefixo da conta aos dois nomes.
3. Associe o usuário ao banco com **ALL PRIVILEGES**.
4. Abra **phpMyAdmin**, selecione o banco criado e importe `BANCO-DE-DADOS.sql` usando UTF-8.

## 2. Publicar a aplicação

1. Extraia todo o ZIP em uma pasta própria, por exemplo `secretaria-iasd`, na pasta inicial da conta.
2. No cPanel, abra **Setup Node.js App** e crie uma aplicação.
3. Escolha Node.js 20 (ou a versão 18/20 mais recente oferecida) e modo **Production**.
4. Informe a pasta extraída como **Application root**, escolha o domínio e use `app.js` como **Application startup file**.
5. Cadastre as variáveis listadas em `VARIAVEIS-AMBIENTE.txt`, substituindo todos os exemplos. Não cadastre `PORT`; o painel gerencia essa porta.
6. Inicie ou reinicie a aplicação. Não configure proxy manual em `.htaccess`: o Setup Node.js App faz o encaminhamento.

Teste `https://seu-dominio.com.br/api/health`. O resultado esperado é:

```json
{"status":"ok","database":"connected"}
```

## 3. Primeiro acesso

- E-mail: `admin@secretaria.local`
- Senha temporária: `Admin@2026!`

Após entrar, abra **Configurações → Segurança** e altere imediatamente a senha. O primeiro login também converte automaticamente o hash temporário SHA-256 para scrypt com salt aleatório.

O cadastro público fica desativado no pacote de produção. Novas contas devem ser criadas por um administrador em **Configurações → Usuários**.

## Atualização e diagnóstico

- Faça backup do banco no cPanel antes de atualizar.
- Substitua os arquivos da aplicação e use **Stop** e depois **Restart** no Setup Node.js App.
- Consulte o **Passenger log file** indicado pelo painel em caso de erro.
- Uma resposta 503 em `/api/health` indica que a aplicação iniciou, mas as variáveis ou permissões do MySQL precisam ser revistas.
