diff --git a/.github/workflows/neon-backup.yml b/.github/workflows/neon-backup.yml new file mode 100644 index 0000000..ee6a368 --- /dev/null +++ b/.github/workflows/neon-backup.yml @@ -0,0 +1,38 @@ +name: Daily Neon Database Backup + +on: + schedule: + # Elke nacht om 02:00 UTC = 04:00 Nederlandse zomertijd / 03:00 wintertijd + - cron: "0 2 * * *" + + # Hiermee kun je handmatig testen via GitHub + workflow_dispatch: + +jobs: + backup: + runs-on: ubuntu-latest + + steps: + - name: Install PostgreSQL client + run: | + sudo apt-get update + sudo apt-get install -y postgresql-client + + - name: Create backup + env: + DATABASE_URL: ${{ secrets.NEON_DATABASE_URL }} + run: | + mkdir -p backups + DATE=$(date +"%Y-%m-%d_%H-%M-%S") + pg_dump "$DATABASE_URL" \ + --format=custom \ + --no-owner \ + --no-privileges \ + --file="backups/neon-backup-$DATE.dump" + + - name: Upload backup artifact + uses: actions/upload-artifact@v4 + with: + name: neon-database-backup + path: backups/*.dump + retention-days: 30