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

Automatización y recuperación de respaldos PostgreSQL mediante GitHub Actions

Description and use

Automated PostgreSQL backup with GitHub Actions, GPG encryption, and deployment of BackupManager on Render.

Problem

La generación manual de copias de seguridad de bases de datos provoca olvidos, archivos desactualizados, pérdida de archivos y exposición de información sensible.

Outcome

Se logró automatizar la creación, cifrado y almacenamiento de respaldos de PostgreSQL, reduciendo riesgos de pérdida y exposición de datos, y se estableció un proceso de verificación de restauración.

Workflow

  • Configurar secretos DATABASE_URL y BACKUP_PASSPHRASE en GitHub Actions.
  • Crear archivo .github/workflows/postgresql-backup.yml con pasos para instalar cliente PostgreSQL y gnupg.
  • Generar respaldo con pg_dump en formato custom.
  • Cifrar el respaldo con GPG usando AES256 y la contraseña del secreto.
  • Eliminar archivo sin cifrar para no dejar datos sensibles en el runner.
  • (En producción) subir el archivo cifrado a un almacenamiento persistente y aplicar política de retención.
  • Monitorear ejecuciones en la pestaña Actions y configurar alertas si fallan.
  • Para restaurar: descifrar con GPG, luego usar pg_restore con opciones --no-owner y --no-acl.
  • Verificar la restauración ejecutando consultas de conteo y comparando estructuras de tablas.

Evidence

Para conectarse a PostgreSQL se necesita una cadena de conexión que contiene información sensible, como el usuario y la contraseña.

Source

El siguiente ejemplo genera un respaldo diario y lo cifra utilizando GPG:

Source

Para restaurar el respaldo, primero se debe descifrar utilizando la contraseña correspondiente.

Source

  • Record date: 2026-10-17T02:41:10.775Z