From 230a898af955eb2589badee735a296da5a105592 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pedro=20Toledo?= Date: Tue, 3 Feb 2026 12:22:55 -0300 Subject: [PATCH] Add README.md and include chaves.md in repository --- .gitignore | 3 -- README.md | 150 +++++++++++++++++++++++++++++++++++++++++++++++++++++ chaves.md | 29 +++++++++++ 3 files changed, 179 insertions(+), 3 deletions(-) create mode 100644 README.md create mode 100644 chaves.md diff --git a/.gitignore b/.gitignore index 35eca5e..8addbb8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,2 @@ # Ignore local data directory pg_data/ - -# Ignore sensitive credentials -chaves.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..bee6164 --- /dev/null +++ b/README.md @@ -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. diff --git a/chaves.md b/chaves.md new file mode 100644 index 0000000..5ed49d4 --- /dev/null +++ b/chaves.md @@ -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 \ No newline at end of file