docs(newwhats): banco dev isolado (newwhats_dev no pgdev) — reverte compartilhamento com VPS3

O dev passou a usar newwhats_dev no pgdev (VPS4), clone dos dados reais via
pg_dump/restore, na rede soc. Reverte o uso do banco real newwhats@VPS3
(compartilhado), que arriscava corromper dados (cascade em chats/messages).
Atualiza secao de conexoes e remove a nota de "nao rodar db push".

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
VPS 4 Builder
2026-06-27 18:21:11 +02:00
parent ceb2e4ed8d
commit 810799a335
+13 -11
View File
@@ -5,16 +5,17 @@
## O que torna este projeto diferente do universal
O `infra/ambiente-dev.md` universal assume: dev servido por **imagem vite buildada** (nginx sobre `vite build`)
e **banco DEV isolado no `pgdev` (VPS4)**, banco `<projeto>_dev`. O newwhats **diverge em dois pontos**:
O `infra/ambiente-dev.md` universal assume: dev servido por **imagem vite buildada** (nginx sobre `vite build`).
O newwhats **diverge** num ponto (o banco segue o universal — `pgdev` isolado):
1. **Não é vite, é Next.js, e o front é container próprio.** O backend Express (`dist/server.js`) serve
**só** `/api`, `/socket.io` e `/media`**não** serve o frontend. O front é um container Next
(`next start -p 3003`) separado. Por isso o dev tem **3 containers** (não um): backend + frontend + nginx
de roteamento.
2. **Banco DEV não é o `pgdev` local — é o banco `newwhats` na VPS3** (decisão do administrador: dev com
**dados reais**, compartilhado). ⚠️ Isso **abre mão do isolamento** que o universal garante: o dev
**grava nos dados reais** (~89k messages, ~10k contacts). Cache isolado via **Dragonfly DB index `/1`**.
> **Histórico:** por um período o dev apontou para o banco real `newwhats` na VPS3 (compartilhado). Isso foi
> revertido em 27/jun/2026 — testes podiam corromper dados reais (delete de instância faz cascade em
> chats/messages). Agora o banco é **isolado** (`newwhats_dev` no `pgdev`), como manda o universal.
## Onde roda / estrutura
@@ -47,14 +48,15 @@ DOCKER_HOST=unix:///run/user/1000/docker.sock docker compose -f docker-compose.d
- **`NEXT_PUBLIC_API_URL` = raiz** (`https://dev.newwhats.clube67.com`), **sem `/api`** — o código já prefixa `/api`
nas chamadas REST; o Socket.IO usa `new URL(url).origin`.
- **Não rodar `prisma db push`** contra o banco `newwhats`: o schema já está alinhado com o código; o `db push`
**dropa** tabelas extras de plugins (`sec_*` da *secretaria*, `janitor_logs`, `nanobana_usage`) — perda de dados.
## Conexões (VPS3, 10.99.0.3) — credenciais no `docker-compose.dev.yml`
## Conexões — credenciais no `docker-compose.dev.yml`
- **Banco:** `postgresql://newwhats:<senha>@10.99.0.3:5432/newwhats` (role `newwhats`; o role `clube67` **não**
tem permissão nesse banco).
- **Cache:** `redis://:<senha>@10.99.0.3:6379/1` (Dragonfly, DB index `/1` para não colidir com a prod).
- **Banco (isolado):** `postgresql://devadmin:<senha>@pgdev:5432/newwhats_dev` — banco `newwhats_dev` no
container **`pgdev`** (VPS4, rede docker **`soc`**; o backend-dev precisa estar na rede `soc` para resolver
o DNS `pgdev`). É um **clone** dos dados reais (~92k messages, ~10k contacts), feito com
`pg_dump` do `newwhats` (VPS3) → `pg_restore --no-owner --no-privileges` no `pgdev`.
Para repuxar/zerar, ver scripts em `/home/deploy/stack/pg-dev/` (padrão `_dev`/`_ref` do universal).
- **Cache:** `redis://:<senha>@10.99.0.3:6379/1` (Dragonfly VPS3, DB index `/1` — isolado da prod por index).
## Atenção — divergência código × PROD