Copia de seguridad basada en Restic para Weblate con PostgreSQL
Nota: Posts relacionados:
- Cómo instalar el servidor Restic REST en Synology NAS para la configuración del servidor (también puede usar otros backends)
- Nuestra configuración de Weblate basada en
docker-compose: Configuración de Weblate en 10 minutos usando docker-compose & Traefik
Configuración del script de copia de seguridad
Primero, genere la contraseña de cifrado usando
backup.sh
pwgen 30 > .restic_password¡Asegúrese de hacer una copia de seguridad de esta contraseña por separado o SE PERDERÁN TODOS SUS DATOS!
Ahora cree backup.sh en el mismo directorio que docker-compose.yml:
weblate_backup.sh
#!/bin/bash
export NAME=$(basename $(pwd))
export RESTIC_REPOSITORY=rest:http://restic:abc123@10.1.2.3:16383/$NAME
export RESTIC_PASSWORD_FILE=.restic_password
if [ ! -f "${RESTIC_PASSWORD_FILE}" ]; then
echo "Por favor cree .restic_password con la contraseña de cifrado de la copia de seguridad Y HAGA UNA COPIA DE SEGURIDAD DE ESA CONTRASEÑA POR SEPARADO!!!"
exit 1
fi
echo "Inicializando el repositorio, por favor ignore cualquier error de 'ya existe'"
if [ ! -f ".restic_inited" ]; then
# Ejecutar el comando de inicialización de restic
restic init
if [ $? -eq 0 ]; then # si la inicialización fue exitosa
# Crear el archivo de inicialización
touch ".restic_inited"
echo "Restic inicializado"
fi
fi
# Copia de seguridad
source .env
docker-compose exec -T database pg_dump -U${POSTGRES_USER} ${POSTGRES_DB} | restic --verbose backup --stdin --stdin-filename="${NAME}.sql"
# Copia de seguridad de archivos
restic --verbose backup backup.sh docker-compose.yml weblate_data --exclude weblate_data/backups --exclude '**/__pycache__'Inicio automático del script de copia de seguridad
Ver Cómo crear un temporizador y servicio de copia de seguridad de Systemd en 10 segundos
TL;DR: En el directorio donde reside backup.sh, ejecute
create_backup_service.sh
wget -qO- https://techoverflow.net/scripts/create-backup-service.sh | sudo bash /dev/stdinSi este artículo te ha ayudado, considera invitarme a un café o hacer una donación vía PayPal para apoyar la investigación y publicación de nuevos artículos en TechOverflow