From deaddfbf6801ca01fc7c200546a616504332c2c7 Mon Sep 17 00:00:00 2001 From: VPS 4 Builder Date: Tue, 16 Jun 2026 12:45:53 +0200 Subject: [PATCH] =?UTF-8?q?feat(dev-db):=20backend=20dev=20usa=20banco=20i?= =?UTF-8?q?solado=20via=20.env=20(default=3Dprodu=C3=A7=C3=A3o)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - DATABASE_URL parametrizado (${SCOREO_DB_*}); default mantém produção (VPS1) intacta - server.js: não força SSL p/ host @pgdev (container dev local); SSL segue p/ VPS3 - .gitignore: ignora .env (override local de dev) - doc: status de implementação do banco DEV isolado Co-Authored-By: Claude Opus 4.8 --- .gitignore | 3 +++ backend/server.js | 2 +- docker-compose.yml | 2 +- documentação/BANCO-DEV-ESTRATEGIA.md | 14 +++++++++++++- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 6191b1f..a3038fd 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,9 @@ backend/test-db-users.js backend/test-db-users.cjs backend/pg-convert.js +# Override local de ambiente DEV (aponta o banco p/ pgdev) — NÃO versionar +.env + # Dependências e caches locais node_modules/ frontend/node_modules/ diff --git a/backend/server.js b/backend/server.js index 1a5b83e..d5df5bc 100644 --- a/backend/server.js +++ b/backend/server.js @@ -41,7 +41,7 @@ const ortoUpload = multer({ storage: multer.memoryStorage(), limits: { fileSize: // ============================================================================= const pool = new Pool({ connectionString: process.env.DATABASE_URL, - ssl: process.env.DATABASE_URL && !process.env.DATABASE_URL.includes('localhost') + ssl: process.env.DATABASE_URL && !/localhost|@pgdev/.test(process.env.DATABASE_URL) ? { rejectUnauthorized: false } : false, max: 10, idleTimeoutMillis: 30000 diff --git a/docker-compose.yml b/docker-compose.yml index 9bb6baf..742ae40 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -37,7 +37,7 @@ services: - BAILEYS_ENGINE=infinite - PORT=8018 - NODE_ENV=production - - DATABASE_URL=postgresql://scoreodonto_user:clube67_scoreodonto_pass_9903@10.99.0.3:5432/scoreodonto?schema=public + - DATABASE_URL=postgresql://${SCOREO_DB_USER:-scoreodonto_user}:${SCOREO_DB_PASS:-clube67_scoreodonto_pass_9903}@${SCOREO_DB_HOST:-10.99.0.3}:5432/${SCOREO_DB_NAME:-scoreodonto}?schema=public - DRAGONFLY_URL=redis://:clube67_dragonfly_pass_9903@10.99.0.3:6379/1 - NATS_URL=nats://10.99.0.3:4222 - TEMPORAL_ADDRESS=10.99.0.3:7233 diff --git a/documentação/BANCO-DEV-ESTRATEGIA.md b/documentação/BANCO-DEV-ESTRATEGIA.md index 6e67a46..0656506 100644 --- a/documentação/BANCO-DEV-ESTRATEGIA.md +++ b/documentação/BANCO-DEV-ESTRATEGIA.md @@ -145,4 +145,16 @@ DB_PASS= --- -_Status: aprovado o plano → implementar a Parte 2. Até lá, nada foi criado/alterado._ +# PARTE 3 — Status de implementação (16/jun/2026) + +**Implementado em `/home/deploy/stack/pg-dev/`** (Docker rootless da VPS4): +- ✅ Container **`pgdev`** (`postgis/postgis:18-3.6`) na rede `soc`, sem porta pública, volume `pgdev-data` em `/var/lib/postgresql`. +- ✅ Scripts `pg-dev-refresh.sh` / `pg-dev-reset.sh` + manifesto `pg-dev-projects.conf` + `secrets.env` (gitignored). +- ✅ Bancos criados (ref+dev): **scoreodonto** (20 MB, PostGIS 3.6.3, 1750 pacientes), **rx** (dental_images), **subdominio**. + +**Backends apontados (via `.env` gitignored + `DATABASE_URL`/`PG_*` parametrizados com default=produção):** +- ✅ **ScoreOdonto** → `pgdev/scoreodonto_dev` (validado: backend conecta, migrações OK; `dev.scoreodonto.com` no ar). Exigiu ajuste de SSL no backend (não força SSL p/ host `@pgdev`). +- ✅ **Subdomínio** → `pgdev/subdominio_dev` (env confirmado, site no ar). +- ⏳ **RX** → `rx_dev` **pronto**, mas o backend ainda NÃO foi apontado: o `rx_scoreodonto_app` está na rede `rx_scoreodonto_network` (não na `soc`) e a senha vem do `.secrets`. Para apontar: adicionar o serviço `app` à rede `soc` + override de `DB_HOST/DB_NAME/DB_USER` e da senha (sem quebrar o default de produção). Follow-up. + +**Produção (VPS3/VPS1) intocada.** Para um projeto novo: adicionar linha no `pg-dev-projects.conf`, `SRC__PASS` no `secrets.env`, rodar `./pg-dev-refresh.sh ` e parametrizar o compose do projeto + `.env`.