feat(backup): add automated DB backup script, rsync support and Gitea CI secret integration
AS Talange CI/CD Pipeline / Build & Run Unit Tests (push) Successful in 4m55s
AS Talange CI/CD Pipeline / Deploy to Test Environment (push) Successful in 6m14s

This commit is contained in:
2026-09-03 07:46:56 +02:00
parent 8fa4437864
commit 86ddad513d
3 changed files with 299 additions and 0 deletions
+25
View File
@@ -49,14 +49,26 @@ jobs:
env:
PROD_DB_USER: ${{ secrets.PROD_DB_USER }}
PROD_DB_PASSWORD: ${{ secrets.PROD_DB_PASSWORD }}
PROD_DB_NAME: ${{ secrets.PROD_DB_NAME }}
CAPTCHA_SECRET: ${{ secrets.CAPTCHA_SECRET }}
CAPTCHA_SITEKEY: ${{ secrets.CAPTCHA_SITEKEY }}
MAIL_USERNAME: ${{ secrets.MAIL_USERNAME }}
MAIL_PASSWORD: ${{ secrets.MAIL_PASSWORD }}
MAIL_FROM: ${{ secrets.MAIL_FROM }}
BREVO_API_KEY: ${{ secrets.BREVO_API_KEY }}
NOTIFICATION_EMAIL: ${{ secrets.NOTIFICATION_EMAIL }}
BACKUP_DIR: ${{ secrets.BACKUP_DIR }}
RETENTION_DAYS: ${{ secrets.RETENTION_DAYS }}
ENABLE_REMOTE_COPY: ${{ secrets.ENABLE_REMOTE_COPY }}
REMOTE_HOST: ${{ secrets.REMOTE_HOST }}
REMOTE_USER: ${{ secrets.REMOTE_USER }}
REMOTE_PORT: ${{ secrets.REMOTE_PORT }}
REMOTE_BACKUP_DIR: ${{ secrets.REMOTE_BACKUP_DIR }}
SSH_KEY_PATH: ${{ secrets.SSH_KEY_PATH }}
run: |
echo "POSTGRES_USER=${PROD_DB_USER:-myuser}" > .env
echo "POSTGRES_PASSWORD=${PROD_DB_PASSWORD:-mypassword}" >> .env
[ -n "${PROD_DB_NAME}" ] && echo "POSTGRES_DB=${PROD_DB_NAME}" >> .env
echo "CAPTCHA_SECRET=${CAPTCHA_SECRET:-1x0000000000000000000000000000000AA}" >> .env
echo "CAPTCHA_SITEKEY=${CAPTCHA_SITEKEY:-1x00000000000000000000AA}" >> .env
if [ -n "${MAIL_USERNAME}" ]; then
@@ -70,6 +82,19 @@ jobs:
echo "APP_MAIL_FROM=${MAIL_FROM}" >> .env
fi
fi
# Configuration des sauvegardes de BDD
[ -n "${BREVO_API_KEY}" ] && echo "BREVO_API_KEY=${BREVO_API_KEY}" >> .env
[ -n "${NOTIFICATION_EMAIL}" ] && echo "NOTIFICATION_EMAIL=${NOTIFICATION_EMAIL}" >> .env
[ -n "${BACKUP_DIR}" ] && echo "BACKUP_DIR=${BACKUP_DIR}" >> .env
[ -n "${RETENTION_DAYS}" ] && echo "RETENTION_DAYS=${RETENTION_DAYS}" >> .env
if [ "${ENABLE_REMOTE_COPY}" = "true" ]; then
echo "ENABLE_REMOTE_COPY=true" >> .env
[ -n "${REMOTE_HOST}" ] && echo "REMOTE_HOST=${REMOTE_HOST}" >> .env
[ -n "${REMOTE_USER}" ] && echo "REMOTE_USER=${REMOTE_USER}" >> .env
[ -n "${REMOTE_PORT}" ] && echo "REMOTE_PORT=${REMOTE_PORT}" >> .env
[ -n "${REMOTE_BACKUP_DIR}" ] && echo "REMOTE_BACKUP_DIR=${REMOTE_BACKUP_DIR}" >> .env
[ -n "${SSH_KEY_PATH}" ] && echo "SSH_KEY_PATH=${SSH_KEY_PATH}" >> .env
fi
docker compose down app || true
docker compose up -d --build app