trubackup is database backup program designed to work with openedx data sources, but not specific to it.
trubackup is a wrapper around restic.
Make sure that you have following software installed in your environment:
- Python 3.11
- restic
- myloader
- mongodb-tools
Then, run pip install trubackup==3.1.1
.
docker pull trubackup:3.1.1
You need restic repository set up elsewhere for trubackup to operate. Consult restic docs to do it.
Before running trubackup make sure that RESTIC_REPOSITORY
and
RESTIC_PASSWORD
are set.
You can use example/trubackup.json
in repo as a reference. All the sections
are mandatory, but you can set mysql
, mongo
and s3
to empty list if
you don't want to backup those.
There's two ways to pass config location to trubackup:
- Put it in the
TRUBACKUP_CONFIG_PATH
environment variable - Pass it as the value of
-c
or--config
command line flag
If neither is used, trubackup will /etc/trubackup.json as fallback.
Run trubackup backup
. The last line in it's output will be backup ID.
trubackup list
and trubackup show
are informational commands. You can
use the first one to show a list of available backups and the second one to
inspect individual backup contents.
Run trubackup restore <BACKUP_ID>
. Make sure to replace <BACKUP_ID>
with your backup ID.
There's example systemd service & timer in systemd/ directory.
There's contrib/delete_old.py
script in this repo that will run
restic forget
command with arguments adjustable by environment variables. Make sure that
you read the script before running it. It is destructive.