Files
RedatorSD/DEPLOY.md
T

90 lines
3.6 KiB
Markdown

# Deploy no Coolify — Redator de SD
Método escolhido: **Dockerfile** (já pronto na raiz do projeto). É a melhor opção aqui porque
o projeto tem dois níveis — os arquivos de configuração do redator na raiz e o app em `app/`
e o Nixpacks não lida bem com isso (detectaria o Node em `app/` e deixaria de fora
`regras-sd.json`, `schema-sd.json`, o prompt e a base). Docker Compose não acrescenta nada:
é um serviço só, e volumes/variáveis o painel do Coolify resolve.
## Passo 0 — subir o projeto para um repositório Git PRIVADO
O Coolify puxa o código de um repositório. Na pasta `D:\IasisSaude`:
```bash
git init -b main
git add .
git commit -m "Redator de SD - preparado para deploy"
```
Crie um repositório **privado** no GitHub (ex.: `iasis/redator-sd`) e:
```bash
git remote add origin https://github.com/SEU-USUARIO/redator-sd.git
git push -u origin main
```
O `.gitignore` da raiz já bloqueia `app/.env` (chave de API!), `app/data/` e `node_modules`.
## Passo 1 — criar a aplicação no painel
1. **Projects → seu projeto → + New → Application**.
2. Fonte: **Private Repository (with GitHub App)** → conecte a conta na primeira vez →
selecione o repositório e o branch `main`.
3. Em **Build Pack**, escolha **Dockerfile** (ele acha o `Dockerfile` na raiz sozinho).
4. Em **Ports Exposes**: `3344`.
## Passo 2 — variáveis de ambiente (aba Environment Variables)
| Variável | Valor |
|---|---|
| `ANTHROPIC_API_KEY` | a chave (marque como **secret**) |
| `APP_USUARIO` | usuário do login — **obrigatório na internet** |
| `APP_SENHA` | senha FORTE — é a única porta de entrada |
| `LLM_MODEL` | `claude-opus-5` (ou o padrão que preferir) |
| `LLM_MODELOS` | `claude-sonnet-5,claude-haiku-4-5-20251001` |
| `LLM_EFFORT` | `medium` |
`PORT` não precisa: o padrão 3344 casa com o EXPOSE da imagem.
## Passo 3 — persistência (aba Storages) — NÃO PULE
Sem isto, **cada deploy apaga as conversas e o histórico da base**:
1. **+ Add → Volume Mount**
- Destination Path: `/projeto/app/data`
- (guarda `sds.json`: conversas e rascunhos)
2. **+ Add → File Mount**
- Destination Path: `/projeto/base-conhecimento.json`
- Content: cole o conteúdo ATUAL do seu `D:\IasisSaude\base-conhecimento.json`
- (o app escreve neste arquivo ao enviar SDs e alimentar a base; o file mount
sobrevive aos deploys)
⚠ A partir do primeiro uso em produção, a base **da VPS** vira a oficial — o arquivo
local no seu PC deixa de valer. Para trazer de volta, copie o conteúdo pela aba
Storages (ou `cat` no terminal do container).
## Passo 4 — domínio e HTTPS
1. No seu DNS, crie um registro **A** apontando (ex.: `redator.iasis.tech`) para o IP da VPS.
2. Na aplicação, em **Domains**: `https://redator.iasis.tech`.
3. O Coolify (Traefik) emite o certificado Let's Encrypt sozinho.
## Passo 5 — health check (opcional, recomendado)
Aba **Health Check**: Path `/api/sessao`, Port `3344` — responde 200 sem login.
## Passo 6 — Deploy
Botão **Deploy** e acompanhe os logs até aparecer:
`Redator de SD rodando em http://localhost:3344`.
Atualizações futuras: `git add … && git commit && git push` — com **Auto Deploy**
ligado (padrão via webhook do GitHub App), o Coolify rebuilda sozinho.
## Comportamentos esperados em produção
- **Sessões em memória**: a cada deploy/restart, é preciso logar de novo.
- **Upload de PDF** (Base de Conhecimento): até 15 MB — passa pelo Traefik sem ajuste.
- **Editar prompt/regras/schema**: edite no repositório e faça push (vira deploy);
a base de conhecimento NÃO — ela vive no file mount e é editada pelo próprio app.