Add README.md and include chaves.md in repository

This commit is contained in:
João Pedro Toledo Goncalves 2026-02-03 12:22:55 -03:00
parent 1e6c58209a
commit 230a898af9
3 changed files with 179 additions and 3 deletions

3
.gitignore vendored
View File

@ -1,5 +1,2 @@
# Ignore local data directory
pg_data/
# Ignore sensitive credentials
chaves.md

150
README.md Normal file
View File

@ -0,0 +1,150 @@
# Banco de Dados Pralog
Este repositório contém a configuração Docker para o banco de dados PostgreSQL do sistema Pralog.
## 📋 Visão Geral
- **Banco**: PostgreSQL 16 Alpine
- **Container**: `pralog-local-db`
- **Rede Docker**: `pralog-net`
- **Porta Externa**: `15432`
- **Porta Interna**: `5432`
## 🔐 Credenciais
### Ambiente Local (Docker)
| Campo | Valor |
|-------|-------|
| Host | `localhost` |
| Porta | `15432` |
| Usuário | `itguys` |
| Senha | `PralogLocal2026!Secure` |
| Database | `global` |
**Connection String:**
```
postgresql://itguys:PralogLocal2026!Secure@localhost:15432/global
```
### Ambiente de Produção (AWS RDS)
As credenciais de produção estão documentadas em [`chaves.md`](./chaves.md).
## 🚀 Como Usar
### Pré-requisitos
- Docker Desktop instalado e rodando
- PowerShell (Windows)
### Iniciando o Container
```powershell
docker-compose up -d
```
### Parando o Container
```powershell
docker-compose down
```
### Verificando Status
```powershell
docker ps -f name=pralog-local-db
```
## 🔄 Restaurando o Backup
O arquivo de backup está montado dentro do container em `/tmp/restore.sql`.
### Passo a Passo
1. **Acesse o container**:
```powershell
docker exec -it pralog-local-db sh
```
2. **Execute o restore**:
```bash
psql -U itguys -d global -f /tmp/restore.sql
```
3. **Verifique os dados**:
```bash
psql -U itguys -d global -c 'SELECT count(*) FROM "GlobalDriver"'
```
## 📁 Estrutura do Projeto
```
banco-pralog/
├── docker-compose.yml # Configuração do container
├── backup_global_*.sql # Backup do banco de dados
├── chaves.md # Credenciais (produção e local)
├── local_credentials.md # Credenciais do ambiente local
├── init-scripts/
│ └── 01-create-role.sql # Script de criação de roles
├── pg_data/ # Volume de dados (gitignore)
└── README.md # Este arquivo
```
## 🐳 Configuração Docker
### docker-compose.yml
O arquivo `docker-compose.yml` define:
- **Imagem**: `postgres:16-alpine` (leve e compatível com o backup)
- **Volumes**:
- `./pg_data``/var/lib/postgresql/data` (persistência de dados)
- `./backup_*.sql``/tmp/restore.sql` (arquivo de backup)
- `./init-scripts/*.sql``/docker-entrypoint-initdb.d/` (scripts de inicialização)
- **Rede**: `pralog-net` (bridge isolada)
- **Porta**: `15432:5432`
### Persistência de Dados
Os dados do PostgreSQL são armazenados em `./pg_data/`. Este diretório:
- ✅ Persiste entre restarts do container
- ✅ Persiste após `docker-compose down`
- ✅ Persiste após redeploy/pull
- ❌ **Não** é enviado ao Git (está no `.gitignore`)
Para resetar o banco completamente:
```powershell
docker-compose down
Remove-Item -Recurse -Force .\pg_data\*
docker-compose up -d
```
## 📊 Tabelas Principais
| Tabela | Descrição |
|--------|-----------|
| `GlobalDriver` | Motoristas globais |
| `GlobalDriverTenant` | Relação motorista-tenant |
| `Tenant` | Tenants/empresas |
| `TenantDomain` | Domínios dos tenants |
| `global_driver_bank_account` | Contas bancárias dos motoristas |
| `global_integration` | Integrações (Planner, IdWall) |
| `request_log` | Log de requisições da API |
## 🛠️ Manutenção
### Fazer Backup
```powershell
.\backup.ps1
```
### Exportar para CSV
```powershell
.\export_csv.ps1
```
## ⚠️ Notas Importantes
1. **Porta 15432**: Usamos porta não-padrão para evitar conflitos com PostgreSQL local.
2. **Rede isolada**: O container roda em rede `pralog-net` para compatibilidade com Portainer.
3. **Restore manual**: O backup não é restaurado automaticamente ao iniciar o container.

29
chaves.md Normal file
View File

@ -0,0 +1,29 @@
chaves de banco de dados
NODE_ENV=production
APP_PORT_BFF_ADMIN_API=3000
APP_PORT_BFF_TENANT_API=3000
AWS_SDK_JS_SUPPRESS_MAINTENANCE_MODE_MESSAGE=1
GLOBAL_DATABASE_URL=postgresql://postgres:fzYSD5g5NLcRvjmd3nJv@pikachu.cnsiese46wxf.sa-east-1.rds.amazonaws.com:5432/global?schema=public
TENANT_DATABASE_URL=postgresql://postgres:fzYSD5g5NLcRvjmd3nJv@pikachu.cnsiese46wxf.sa-east-1.rds.amazonaws.com:5432/tenant_example?schema=public
BASE_TENANT_DATABASE_URL=postgresql://postgres:fzYSD5g5NLcRvjmd3nJv@pikachu.cnsiese46wxf.sa-east-1.rds.amazonaws.com:5432/
DEFAULT_PAGINATION_LIMIT=30
ENCRYPTION_ALGORITHM=aes-256-cbc
# IMPORTANT=This key must be 32 characters (256 bit).
ENCRYPTION_KEY=fl0HAlwhEdw1uYfOBU8bFhy6YzpUoqft
JWT_SECRET_TENANT_USER=2fea64fe5612945c7b0591dceca622e0e22d3d20eec621ed3480dd3ddce6cf1e96a6325e0b55ea704e578e4607432b1eed119e1d0712e6fc63ccee4fa0edcc1417ec0e7e21fd643363473e0db9c52c576012ce86c181b95398350713cb8c4147d78ae6383503b32de7de5ac113396aceed23de81f1d5e7286c5385888261b73f
JWT_SECRET_TENANT_API_USER=g7YwY7hsTib2sABe6trRdwSndAgTS7OBmie0TpMU4ItyGsmlZup6BcLts06oS5GwjOypAcaSf9qsxju6Lptu++62eaEXs9oYrASDeOSD4YEqnT4/jUJ2K62ekIc8v+A9ssWhf/y0tYGD3nfkmzXTrPAwR1542NLfuFdduz3pl7bT/f9SyIlGYRs5w0hr+zeDj43mxaqLxDmRJUVYvZdGv4Lm2vdW5q3+n7IL/K1COFD7n8G170WCNGewOyxSb9cQ
JWT_SECRET_GLOBAL_DRIVER=Pbhezk/AQQpR7bnSELuHN/n6o7UfquqK5A8+g2UptXl9k/z9NpjxMkFBS2yKdYCizI+KXCtYcnqW7kCCnFJ0XwMU2KxjyEmXDN06Bcm8zVu2HoXwtERUGsNsH6XCxALRXmDoPbw8qeJeS/fyytIDNpfQ5EUjrJ+o3ZwN6BnjufrQTBkeInNQ44JMMAQv4X6R5Ai8PJmuJTtEzKFkP2HBWkcF9+HAHFv9Wc6FhVDcvJs8F6+h0m613sv12S8WZkIW
MANAGER_SECRET_KEY=519fecec-33f4-4779-9642-d68f7d0697a6-deaed95d-bda5-4986-acde-ba0dc2f98750-2c674006-60b8-4a7b-b2b7-6a78a09b5063
# S3 Configuration
S3_AWS_REGION=sa-east-1
S3_AWS_BUCKET=prafrota-be
DEFAULT_TENANT_ID=5