line-gestao-api/DEPLOY.md

2.0 KiB

Deploy rápido (API + Postgres)

Erro: no configuration file provided: not found

Esse erro acontece quando o docker compose é executado em uma pasta sem docker-compose.yml.

Este repositório inclui docker-compose.yml na raiz do projeto.

Passo a passo

  1. Entre na pasta da API:
cd ~/apps/line-gestao-api
  1. Crie o .env a partir do exemplo:
cp .env.example .env
nano .env
  1. Suba os containers:
docker compose up -d --build
  1. Verifique o status e logs:
docker compose ps
docker compose logs -f --tail=200
  1. Teste healthcheck da API:
curl -I http://SEU_SERVIDOR:4000/health

Checklist de confirmação (API realmente no ar)

Considere que o deploy está concluído quando todos os itens abaixo estiverem OK:

docker compose ps
curl -i http://127.0.0.1:4000/health
curl -i http://SEU_IP_PUBLICO:4000/health

Resultado esperado:

  • container linegestao-api com status healthy;
  • container linegestao-db com status healthy;
  • endpoint /health respondendo HTTP/1.1 200 OK.

Domínio (DNS + proxy reverso)

Com o compose atual, a API está disponível em http://SEU_IP:4000. Para usar domínio em produção, faça:

  1. Crie/ajuste o DNS do domínio para apontar para o IP do servidor (registro A).
  2. Coloque um proxy reverso na frente da API (Nginx, Traefik ou Caddy).
  3. Emita TLS/HTTPS (Let's Encrypt).
  4. Atualize FRONTEND_PUBLIC_URL no .env para a URL pública do front-end.

Sem proxy+HTTPS, o domínio pode até abrir via HTTP, mas não é recomendado para produção.

Atualizando um clone já existente no servidor

cd ~/apps/line-gestao-api
git fetch --all --prune
git pull --rebase origin NOME_DA_BRANCH
docker compose up -d --build

Observações

  • O Postgres não é exposto para fora do Docker (sem 5432:5432).
  • A API sobe na porta 4000 do host (4000:8080).
  • Defina valores fortes para JWT_KEY, SEED_ADMIN_PASSWORD e POSTGRES_PASSWORD.