firebase-github-backup
v1.0.17
Published
Make automated encrypted backups of your Firebase database in a GitHub repo
Downloads
6
Readme
🔥🗄️ Firebase GitHub Backup
Automagically backup your Firebase Cloud Firestore database to a GitHub repository, with AES-256 encryption. The GitHub Actions workflow runs every week and stores encrypted backups in the ./backups
directory as .zip
files.
⭐ Getting started
- Fork this repository
- Add required repository secrets
Backup files will be created weekly, and can be downloaded and manually decrypted for viewing. You can also use the npm run decrypt
script to decrypt all stored files. As an example, our production database' backups are available in the ./backups
directory of this repository.
⚙️ Configuration
Environment variables
Locally, environment variables are loaded from a .env
file. For GitHub Actions, add the following as repository secrets (see Creating and storing encrypted secrets):
FIREBASE_SERVICE_ACCOUNT_KEY
is the Firebase Service Account Key in JSON formatFIREBASE_DATABASE_URL
is the Firebase Cloud Firestore database URL, e.g., https://example.firebaseio.comBACKUPS_DIRECTORY
is the directory to save backups in, defaults tobackups
KEY
is the key for AES-256 encryption, can be any length since it is hashedINITIALIZATION_VECTOR
is the IV for AES-256, can be any length since it is hashed
Deployment
Run the script using ts-node
:
npm run run
You can also decrypt all backups in the directory:
npm run decrypt
Compile TypeScript and run Node.js script:
npm run build && npm run start