Handle missing DOMAIN gracefully and document same-server steps

This commit is contained in:
Eduardo Lopes 2026-02-10 12:36:19 -03:00
parent e464c9544a
commit 8fc2a134d9
3 changed files with 59 additions and 2 deletions

View File

@ -1,4 +1,4 @@
{$DOMAIN} {
{$DOMAIN:linegestao.inglinesystems.com.br} {
encode zstd gzip
reverse_proxy api:8080

View File

@ -113,6 +113,30 @@ Resultado esperado:
> Importante: no primeiro boot o Caddy pode levar alguns segundos para obter o certificado. Se falhar, confira se DNS já propagou e se as portas 80/443 estão acessíveis.
### Erro comum: `DOMAIN is required`
Se aparecer este erro ao subir `docker-compose.domain.yml`, o `.env` da API está sem a variável `DOMAIN`.
Corrija assim no servidor:
```bash
cd ~/apps/line-gestao-api
cp -n .env.example .env
# confirme variáveis mínimas
grep -E '^(DOMAIN|ACME_EMAIL|FRONTEND_PUBLIC_URL|JWT_KEY|POSTGRES_PASSWORD)=' .env
# se DOMAIN não aparecer, adicione
echo 'DOMAIN=linegestao.inglinesystems.com.br' >> .env
```
Depois suba novamente:
```bash
docker compose -f docker-compose.domain.yml up -d --build --remove-orphans
```
Comandos úteis de diagnóstico:
```bash
@ -352,3 +376,36 @@ docker exec -t <container_db> pg_dump -U <user> <db> > backup.sql
```bash
docker compose logs -f --tail=200
```
## 5.3) Front-end + Back-end no mesmo servidor (com domínio)
Sim, é possível e esse é o fluxo recomendado quando os repositórios estão em pastas irmãs.
1. Build do front:
```bash
cd ~/apps/line-gestao-frontend
git fetch --all --prune
git pull --ff-only origin <SUA_BRANCH_FRONT>
cat > .env.production << 'EOF'
VITE_API_URL=https://linegestao.inglinesystems.com.br
EOF
npm ci
npm run build
```
2. Subir API + Caddy com HTTPS:
```bash
cd ~/apps/line-gestao-api
docker compose -f docker-compose.domain.yml up -d --build --remove-orphans
```
3. Testar no navegador:
- Front: `https://linegestao.inglinesystems.com.br`
- API health: `https://linegestao.inglinesystems.com.br/health`

View File

@ -48,7 +48,7 @@ services:
api:
condition: service_started
environment:
DOMAIN: ${DOMAIN:?DOMAIN is required}
DOMAIN: ${DOMAIN:-linegestao.inglinesystems.com.br}
ACME_AGREE: "true"
EMAIL: ${ACME_EMAIL:-}
ports: