Files
RedatorSD/DEPLOY.md
T

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

  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.