feat(dev-db): backend dev usa banco isolado via .env (default=produção)
build-and-push / build (push) Successful in 1m10s
build-and-push / deploy (push) Has been skipped

- 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 <noreply@anthropic.com>
This commit is contained in:
VPS 4 Builder
2026-06-16 12:45:53 +02:00
parent efa9553536
commit deaddfbf68
4 changed files with 18 additions and 3 deletions
+3
View File
@@ -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/
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+13 -1
View File
@@ -145,4 +145,16 @@ DB_PASS=<senha pgdev>
---
_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_<proj>_PASS` no `secrets.env`, rodar `./pg-dev-refresh.sh <proj>` e parametrizar o compose do projeto + `.env`.