Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

Backups de PostgreSQL que se prueban solos: pg_dump, cifrado y verificación automática con GitHub Actions

Description and use

An automated pipeline for PostgreSQL that creates, encrypts, and verifies backups using GitHub Actions, ensuring restore‑ability.

Problem

Garantizar que un backup de PostgreSQL sea restaurable antes de un desastre.

Outcome

Backup diario de 4 KB cifrado, verificado con 5 filas restauradas, artefacto retenido 7 días; restauración de producción en 24 s tras DROP TABLE.

Workflow

  • 1. deploy.yml: despliega API y ejecuta pruebas de humo, construye imagen Docker y dispara Deploy Hook si pasa.
  • 2. backup.yml: ejecuta diariamente a las 02:00 UTC, genera dump con pg_dump, comprime, verifica, cifra con GPG, calcula checksum y sube como artefacto.
  • 3. restore.yml: restaura backup en base temporal, cuenta filas, falla si hay corrupción o error de restauración.
  • 4. backup.sh: script bash que ejecuta pg_dump con opciones de limpieza y sin privilegios, comprueba gzip, busca marca de dump completo, cifra si se dispone de BACKUP_ENCRYPTION_KEY, genera SHA-256 y limpia archivos parciales en error.

Evidence

En este proyecto partimos de una pregunta sencilla: ¿cómo sabemos que un backup sirve antes de necesitarlo?

Source

El script es el corazón del proyecto. Lo escribí en bash con set -Eeuo pipefail para que cualquier error detenga la ejecución.

Source

Después de generar el backup, el workflow lo restaura en esa base efímera con el mismo restore.sh que usaríamos en un desastre real, y cuenta las filas de la tabla tasks.

Source

En la ejecución de la demostración el backup tardó 44 segundos, pesó 4 KB cifrado y la verificación recuperó 5 filas.

Source

  • Record date: 2026-10-04T04:40:46.512Z