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_PATHenvironment variable - Pass it as the value of
-cor--configcommand 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.