diff --git a/.gitea/workflows/ci-prod.yml b/.gitea/workflows/ci-prod.yml index 5b19b6d..a26cc1a 100644 --- a/.gitea/workflows/ci-prod.yml +++ b/.gitea/workflows/ci-prod.yml @@ -114,3 +114,29 @@ jobs: echo "Application failed to start or login page is not accessible." docker logs astalange_app exit 1 + + - name: Deploy Backup Script & Config to DB Server (10.8.0.3) + env: + DB_SERVER_HOST: ${{ secrets.PROD_DB_HOST }} + DB_SERVER_USER: ${{ secrets.PROD_DB_SSH_USER }} + SSH_KEY: ${{ secrets.PROD_DB_SSH_KEY }} + run: | + TARGET_HOST="${DB_SERVER_HOST:-10.8.0.3}" + TARGET_USER="${DB_SERVER_USER:-root}" + DEST_DIR="/opt/as-talange" + + if [ -n "${SSH_KEY}" ]; then + apk add --no-cache openssh-client rsync + mkdir -p ~/.ssh + echo "${SSH_KEY}" > ~/.ssh/id_rsa + chmod 600 ~/.ssh/id_rsa + + echo "Deploying backup script and .env to DB Server (${TARGET_USER}@${TARGET_HOST}:${DEST_DIR})..." + ssh -o StrictHostKeyChecking=no "${TARGET_USER}@${TARGET_HOST}" "mkdir -p ${DEST_DIR}/scripts" + rsync -avz -e "ssh -o StrictHostKeyChecking=no" scripts/backup_db.sh "${TARGET_USER}@${TARGET_HOST}:${DEST_DIR}/scripts/" + rsync -avz -e "ssh -o StrictHostKeyChecking=no" .env "${TARGET_USER}@${TARGET_HOST}:${DEST_DIR}/.env" + ssh -o StrictHostKeyChecking=no "${TARGET_USER}@${TARGET_HOST}" "chmod +x ${DEST_DIR}/scripts/backup_db.sh" + echo "Backup script and .env deployed successfully to ${DEST_DIR} on DB Server!" + else + echo "NOTICE: PROD_DB_SSH_KEY secret not defined, skipping remote deployment of backup script to DB Server." + fi