Skip to content

Backups and Upgrades

Anand edited this page Oct 14, 2026 · 1 revision

What to back up

Everything is in one folder: /var/lib/whittle (Linux installer) or the /data volume (Docker).

/var/lib/whittle/
  whittle.db                     SQLite database: accounts, sessions, the design list
  designs/<id>/v<n>.whittle      every kept version of every design
  designs/<id>/thumb.png         the latest thumbnail

With PostgreSQL, back up the database and this folder (the design files are always kept on disk).

Every .whittle file is a complete design that also opens in the desktop app, so even a plain file copy is useful.

Backing up

Simplest: stop, copy, start.

sudo systemctl stop whittle
sudo tar czf whittle-backup-$(date +%F).tar.gz -C /var/lib whittle
sudo systemctl start whittle

Without stopping (SQLite): copy the design files, and take a consistent copy of the database with the sqlite3 tool:

sudo sqlite3 /var/lib/whittle/whittle.db ".backup '/root/whittle-$(date +%F).db'"
sudo tar czf /root/whittle-designs-$(date +%F).tar.gz -C /var/lib/whittle designs

PostgreSQL: pg_dump -Fc whittle > whittle-$(date +%F).dump, plus the designs folder.

Docker:

docker run --rm -v whittle-data:/data -v "$PWD":/backup alpine tar czf /backup/whittle-$(date +%F).tar.gz -C /data .

Proxmox: a container backup (vzdump) includes everything.

Restoring

sudo systemctl stop whittle
sudo rm -rf /var/lib/whittle
sudo tar xzf whittle-backup-2026-01-31.tar.gz -C /var/lib
sudo chown -R whittle:whittle /var/lib/whittle
sudo systemctl start whittle

Docker: docker run --rm -v whittle-data:/data -v "$PWD":/backup alpine sh -c 'rm -rf /data/* && tar xzf /backup/whittle-2026-01-31.tar.gz -C /data'

Upgrading

Upgrades keep your settings and data, and the database upgrades itself when the new version starts. Take a backup first.

Installed with Upgrade
Linux installer curl -fsSL https://raw.githubusercontent.com/anand34577/whittle/main/install.sh | sh -s -- --server
Release download download the new release, extract it, run sudo ./deploy/install.sh
Docker docker pull ghcr.io/anand34577/whittle:latest, then recreate the container (Docker)
Docker Compose docker compose pull && docker compose up -d

Check the version afterwards: curl -s http://localhost:8080/api/config shows "version".

Going back to an older version after the database was upgraded isn't supported; restore the backup you took instead.

How much space?

Designs are small, usually 20 KB to 1 MB per version. With the default 50 versions per design, 100 designs use roughly 100 MB to 5 GB at most. Lower WHITTLE_MAX_VERSIONS to keep less history.

Clone this wiki locally