Skip to content

Backups & Updates

All of your Lyftr data — workouts, programs, weight, nutrition — lives in one SQLite file. Backing up is copying that file. Updating is pulling the latest image. Your data survives both.

The database is stored on a Docker volume and mounted at ./data/lyftr.db next to your docker-compose.yml. That single file is your instance.

Copy the database file. For a personal instance with little write traffic, a live copy is fine:

Terminal window
cp ./data/lyftr.db ./data/lyftr.db.backup

For a guaranteed-consistent copy (e.g. right before an update), stop the stack first, then copy:

Terminal window
docker compose down
cp ./data/lyftr.db ./data/lyftr.db.backup
docker compose up -d

A nightly backup keeping the last 7 days:

Terminal window
0 3 * * * cp /path/to/lyftr/data/lyftr.db /path/to/backups/lyftr-$(date +\%F).db && \
find /path/to/backups -name 'lyftr-*.db' -mtime +7 -delete

Stop the stack, drop the backup in place, start again:

Terminal window
docker compose down
cp ./data/lyftr.db.backup ./data/lyftr.db
docker compose up -d
Terminal window
docker compose pull
docker compose up -d

Your data volume is preserved across updates.