2.8 KiB
2.8 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.
Opção 1: subir via IP (rápido)
- Entre na pasta da API:
cd ~/apps/line-gestao-api
- Crie o
.enva partir do exemplo:
cp .env.example .env
nano .env
- Suba os containers:
docker compose up -d --build
- Verifique o status e logs:
docker compose ps
docker compose logs -f --tail=200
- Teste healthcheck da API:
curl -I http://SEU_SERVIDOR:4000/health
Opção 2: subir já com domínio + HTTPS automático (Caddy)
Pré-requisitos
- O DNS do domínio/subdomínio da API deve apontar para o IP do servidor (registro
A). - Portas 80 e 443 abertas no firewall/security group.
Se você viu erro do tipo
client version 1.24 is too oldno Traefik, use este modo com Caddy: ele não depende da API Docker para criar rotas e evita esse problema.
1) Ajuste o .env
Na pasta da API:
cd ~/apps/line-gestao-api
cp .env.example .env
nano .env
Preencha obrigatoriamente:
API_DOMAIN(ex.:api.seudominio.com)ACME_EMAIL(email para emitir certificado)FRONTEND_PUBLIC_URL(URL pública do front)JWT_KEY,SEED_ADMIN_*,POSTGRES_PASSWORD
2) Suba em modo produção com Caddy
docker compose -f docker-compose.prod.yml up -d --build
3) Verifique saúde e certificado
docker compose -f docker-compose.prod.yml ps
docker compose -f docker-compose.prod.yml logs -f --tail=200
curl -i https://SEU_API_DOMAIN/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
Para produção com domínio:
docker compose -f docker-compose.prod.yml ps
curl -i https://SEU_API_DOMAIN/health
Resultado esperado:
- container
linegestao-apicom statushealthy; - container
linegestao-dbcom statushealthy; - endpoint
/healthrespondendoHTTP/1.1 200 OK.
Atualizando um clone já existente no servidor
cd ~/apps/line-gestao-api
git fetch --all --prune
git pull --rebase origin NOME_DA_BRANCH
Depois de atualizar, suba com o arquivo que você usa:
# modo IP
docker compose up -d --build
# modo domínio + HTTPS
docker compose -f docker-compose.prod.yml up -d --build
Observações
- O Postgres não é exposto para fora do Docker (sem
5432:5432). - No modo IP, a API sobe na porta
4000do host (4000:8080). - No modo domínio, a API fica atrás do Caddy em
443(HTTPS). - Defina valores fortes para
JWT_KEY,SEED_ADMIN_PASSWORDePOSTGRES_PASSWORD.