3.6 KiB
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:
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:
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
- Projects → seu projeto → + New → Application.
- Fonte: Private Repository (with GitHub App) → conecte a conta na primeira vez →
selecione o repositório e o branch
main. - Em Build Pack, escolha Dockerfile (ele acha o
Dockerfilena raiz sozinho). - 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:
- + Add → Volume Mount
- Destination Path:
/projeto/app/data - (guarda
sds.json: conversas e rascunhos)
- Destination Path:
- + 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)
- Destination Path:
⚠ 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
- No seu DNS, crie um registro A apontando (ex.:
redator.iasis.tech) para o IP da VPS. - Na aplicação, em Domains:
https://redator.iasis.tech. - 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.