docs: add PostgreSQL cold storage backup documentation to Wasabi
+1
@@ -14,6 +14,7 @@ Selecione um tópico abaixo para acessar o guia detalhado:
|
||||
* [Rede VPN e Segurança Zero-Trust](VPN_Network_Architecture.md): Como as VPSs se comunicam por meio da VPN privada e o modelo de isolamento lateral de rede.
|
||||
|
||||
### ⚙️ 2. Infraestrutura e Rede
|
||||
* [Backup do Banco para Wasabi (Cold Storage)](PostgreSQL_Wasabi_Backup.md): Script e CRON job para fazer backup autônomo do banco da VPS 3 para a nuvem.
|
||||
* [Resolução de Erros de SSL e Proxy](SSL_Proxy_SSL_Fix.md): Como corrigimos o erro crítico de Mixed Content do SSL por proxy reverso.
|
||||
* [Contador de Versões e Painel de Deploy](Versions_Deploy_System.md): Detalhamento do controle de deploys automáticos em ambiente multi-VPS.
|
||||
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
# 💾 Backup Frio do Banco de Dados para Wasabi (S3)
|
||||
|
||||
Este guia documenta o script e as instruções para configurar o backup autônomo (Cold Storage) do PostgreSQL hospedado na **VPS 3** diretamente para o armazenamento seguro em nuvem Wasabi (compatível com S3).
|
||||
|
||||
Esta solução impede a perda de dados caso a VPS 3 (Data Appliance) sofra algum colapso.
|
||||
|
||||
---
|
||||
|
||||
## 🏗️ 1. O Script de Backup
|
||||
O script abaixo realiza o "Dump" (cópia lógica) completo do banco de dados `newwhats`, compacta em formato `.gz` e utiliza a ferramenta `aws-cli` para transferir os dados criptografados para o Bucket Wasabi.
|
||||
|
||||
Crie o arquivo em `/home/deploy/scripts/backup-db-wasabi.sh` na **VPS 3**:
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
# ────────────────────────────────────────────────────────
|
||||
# Script de Backup Automático (PostgreSQL -> Wasabi S3)
|
||||
# ────────────────────────────────────────────────────────
|
||||
set -e
|
||||
|
||||
# Configurações do Banco
|
||||
DB_USER="deploy"
|
||||
DB_NAME="newwhats"
|
||||
DB_HOST="10.99.0.3"
|
||||
|
||||
# Configurações AWS/Wasabi
|
||||
BUCKET_NAME="newwhats-backups"
|
||||
ENDPOINT_URL="https://s3.wasabisys.com"
|
||||
|
||||
# Nomes de Arquivo
|
||||
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
|
||||
BACKUP_FILE="/tmp/newwhats_backup_${TIMESTAMP}.sql.gz"
|
||||
|
||||
echo "[$(date)] Iniciando Dump do PostgreSQL..."
|
||||
pg_dump -U $DB_USER -h $DB_HOST -F p $DB_NAME | gzip > $BACKUP_FILE
|
||||
|
||||
echo "[$(date)] Enviando para o Wasabi (S3)..."
|
||||
aws s3 cp $BACKUP_FILE s3://${BUCKET_NAME}/postgresql/${TIMESTAMP}.sql.gz \
|
||||
--endpoint-url=$ENDPOINT_URL
|
||||
|
||||
echo "[$(date)] Limpando arquivo local temporário..."
|
||||
rm -f $BACKUP_FILE
|
||||
|
||||
echo "[$(date)] Backup concluído com sucesso!"
|
||||
```
|
||||
|
||||
## 🔐 2. Instalação de Ferramentas e Credenciais
|
||||
Para o script acima funcionar, o agente ou administrador deve rodar na VPS 3:
|
||||
1. `sudo apt install postgresql-client awscli`
|
||||
2. Executar `aws configure` e inserir a *Access Key* e *Secret Key* da conta Wasabi.
|
||||
3. Criar o bucket no Wasabi se ainda não existir.
|
||||
|
||||
## 🕒 3. Agendamento CRON (Automatização Diária)
|
||||
Após testar o script manualmente (`bash /home/deploy/scripts/backup-db-wasabi.sh`), adicione-o no `crontab` do usuário `deploy` na **VPS 3** para rodar silenciosamente todas as madrugadas:
|
||||
|
||||
```bash
|
||||
# Rodar todos os dias às 03:00 da manhã
|
||||
0 3 * * * bash /home/deploy/scripts/backup-db-wasabi.sh >> /home/deploy/scripts/backup.log 2>&1
|
||||
```
|
||||
|
||||
---
|
||||
> **⚠️ Ação Requerida na VPS 3:** Qualquer agente que ler esta Wiki com ordens para implantar o backup, DEVE fazer login via SSH na **VPS 3** e aplicar as configurações descritas acima em modo "Apenas Adicionar", sem apagar bancos locais.
|
||||
Reference in New Issue
Block a user