Backup & DR
Como o rke-db-00 concentra os dados críticos de GitLab, Nextcloud e
Penpot, o backup é a peça que torna o armazenamento local seguro. A Serigy usa
o Wal-G (integrado ao CloudNativePG) para arquivar
continuamente no Cloudflare R2.
Por que Cloudflare R2
Seção intitulada “Por que Cloudflare R2”A decisão (registrada em ADR-0001) é despejar os backups em um Object Storage S3 — o Cloudflare R2 — e não replicar para armazenamento frio local pelo túnel Headscale.
| Critério | Cloudflare R2 |
|---|---|
| Compatibilidade | API S3 nativa (Wal-G fala S3) |
| Custo de egress | Sem cobrança de egress |
| Off-site | Fora da OVH → resiliência a falha do provedor |
| Operação | Gerenciado, sem manter storage no escritório |
Como funciona
Seção intitulada “Como funciona”flowchart LR
PG[("PostgreSQL<br/>rke-db-00")] -->|WAL contínuo| WG["Wal-G"]
PG -->|base backup periódico| WG
WG ==>|S3 API| R2["🪣 Cloudflare R2<br/>s3://serigy-backups/*"]
R2 -.->|restore / PITR| New[("Novo PostgreSQL")]
- Base backups — cópias completas periódicas do banco.
- WAL archiving — fluxo contínuo de write-ahead logs, que permite PITR (recuperação para um instante exato).
Configuração (no Cluster CNPG)
Seção intitulada “Configuração (no Cluster CNPG)”spec: backup: barmanObjectStore: destinationPath: s3://serigy-backups/<app> endpointURL: https://<accountid>.r2.cloudflarestorage.com s3Credentials: accessKeyId: name: r2-credentials key: ACCESS_KEY_ID secretAccessKey: name: r2-credentials key: SECRET_ACCESS_KEY wal: compression: gzip retentionPolicy: "30d"As credenciais do R2 vêm de um Secret entregue pelo Vault —
nunca embutidas no manifesto.
Recuperação (PITR)
Seção intitulada “Recuperação (PITR)”O procedimento passo a passo está em
Runbooks → Backup & Restore. Em resumo: o CNPG cria
um novo Cluster a partir do barmanObjectStore, reaplica os WALs até o instante
desejado e religa a aplicação ao novo Service.