Backup tool built on top of rclone. Manage jobs, schedule backups, get notified, restore anywhere.
██████╗ ██████╗██╗ ██████╗ █████╗ ██╗ ██╗
██╔══██╗██╔════╝██║ ██╔═══██╗██╔══██╗██║ ██╔╝
██████╔╝██║ ██║ ██║ ██║███████║█████╔╝
██╔══██╗██║ ██║ ██║ ██║██╔══██║██╔═██╗
██║ ██║╚██████╗███████╗╚██████╔╝██║ ██║██║ ██╗
╚═╝ ╚═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝
# install
curl -fsSL https://raw.githubusercontent.com/itsazni/rcloak/main/install.sh | bash# uninstall
curl -fsSL https://raw.githubusercontent.com/itsazni/rcloak/main/install.sh | bash -s uninstall# check and update to latest version
rcloak update
# force reinstall (even if on latest)
rcloak update --force
# force reinstall directly from installer
curl -fsSL https://raw.githubusercontent.com/itsazni/rcloak/main/install.sh | bash -s -- --forceFirst-time configuration. Walks you through remotes, notifications, and your first job.
rcloak setup# add interactively
rcloak add
# add via flags
rcloak add --name mysite --source /var/www --dest gdrive:backups/web --compress --retention 7
# list all jobs
rcloak list
# edit a job (interactive menu: source, dest, compression, retention, enable/disable, rename)
rcloak edit
# remove a job
rcloak remove# run all enabled jobs
rcloak run
# run specific job
rcloak run --job mysite
# simulate without uploading
rcloak run --dry-runRestore from any backup in the history database. Works across hosts.
# interactive picker (shows all backups from all hosts)
rcloak restore
# restore specific job (latest successful backup)
rcloak restore --job mysite --to /tmp/restoredrcloak historyShows all recorded backups with size, duration, status, and which host ran them.
# interactive schedule picker
rcloak schedule
# set directly
rcloak schedule --cron "0 2 * * *"
# specific job only
rcloak schedule --cron "0 */6 * * *" --job database
# remove
rcloak schedule --removeDiscord webhook notifications on backup start, progress, and completion.
# configure
rcloak notify
# test delivery
rcloak test-notifyrcloak keeps a SQLite database of all backups. Sync it to your remote so you can restore from another machine.
# set default remote for sync
rcloak set-remote
# push config + db to remote
rcloak sync-db
# push to specific remote
rcloak sync-db --remote mydrive:
# pull db from remote
rcloak import-db
# pull from specific remote
rcloak import-db --remote mydrive:Typical cross-host flow:
# host A
rcloak run # backups + auto-syncs db
# host B
rcloak import-db # pull backup history
rcloak restore # pick and restorercloak config # show raw json config
rcloak cleanup # apply retention policy (delete old backups from remote)
rcloak status # job status overview
rcloak --version
rcloak --verbose # debug output
rcloak --no-color # disable colorsStored at config/backup.json. Managed through CLI — no manual editing needed.
rcloak/
├── rcloak main cli
├── lib/
│ ├── backup.sh backup execution
│ ├── config.sh json config
│ ├── db.sh sqlite history
│ ├── logger.sh logging
│ ├── notify.sh discord
│ ├── restore.sh restore logic
│ └── utils.sh ui & helpers
├── data/
│ └── rcloak.db backup history
├── config/
│ └── backup.json user config
├── logs/ execution logs
└── install.sh installer
- bash 4+
- rclone (configured with at least one remote)
- jq, curl, sqlite3
This project is licensed under the MIT License. See LICENSE for details.