ipfs-backup
Open source encrypted IPFS backup service.
Requirements
- Moralis server - https://moralis.io/
- Email account (currently only gmail is supported)
- Node.js
- npm (Node.js package manager)
npm install -g ipfs-backup
Usage
Run the backup service:
npx ipfs-backup -a MORALIS_APP_ID -s MORALIS_SERVER_URL -k MORALIS_MASTER_KEY -f BACKUP_FREQUENCY -d DIRECTORY -e EMAIL -p PASSWORD
Arguments:
- MORALIS_APP_ID -a
- The app ID of your Moralis server.
- MORALIS_SERVER_URL -s
- The URL of your Moralis server.
- MORALIS_MASTER_KEY -k
- The master key of your Moralis server.
- BACKUP_FREQUENCY -f
- The period of time in between backups in hours.
- DIRECTORY -d
- The path to a directory you wish to backup.
- EMAIL -e
- Your email address (must be a gmail account).
- PASSWORD -p
- The password to your email account.
Restore a backup:
npx ipfs-restore -h BACKUP_HASH -p DESTINATION_PATH -k EMAIL_PASSWORD_ENCRYPTION_KEY
Arguments:
- BACKUP_HASH -h
- The IPFS content hash of the backup you wish to restore.
- DESTINATION_PATH -p
- The path that you wish the restored file to be saved.
- EMAIL_PASSWORD_ENCRYPTION_KEY -k
- The password to your email account; this is used to encrypt and decrypt your data.
Description
This is an open source command line utility package that allows you backup a directory to IPFS, using a free Moralis server. Data is encrypted and decrypted using the provided email password as a private key, and each time the system performs a backup it will email you with a link to the IPFS content, as well as a BACKUP_HASH
which you can use to download and decrypt a backup. This means that you can retain backups of directories for no cost, thanks to IPFS and the free tier of Moralis.
Release Notes
1.0.2-beta
- Supports encrypting and syncing a single directory
-
BACKUP_FREQUENCY
does not do anything as the script will currently just run the backup once, a future release will include automatic backups at the provided interval times -
EMAIL
only supports gmail accounts in this release - Your email account may block the script from logging into your account, you will need to allow it access