feat(dev-db): backend dev usa banco isolado via .env (default=produção)
- 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:
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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`.
|
||||
|
||||
Reference in New Issue
Block a user