Usage

Web UI

Using the fsbackup web interface to monitor backups, browse snapshots, and run jobs.

The fsbackup web UI is a FastAPI + HTMX interface that runs as fsbackup-web.service on the backup server.

Accessing the UI

The web UI binds to 0.0.0.0:8080 by default. Open http://<backup-server>:8080 in your browser.

sudo systemctl status fsbackup-web
sudo journalctl -u fsbackup-web -f

Dashboard

The dashboard shows:

  • Last run status per class (exit code from the latest runner run)
  • S3 export summary — last run time, objects uploaded/skipped/failed, bytes transferred

Snapshots

The Snapshots page lists all ZFS snapshots, filterable by tier, date, class, and target. Each snapshot links to a file browser backed by the ZFS .zfs/snapshot/ read-only directory.

Configuration

The Configuration page has four tabs:

  • Hosts — remote hosts derived from targets.yml, with all their associated targets
  • Targets — all targets from targets.yml with source path, rsync options, and ZFS dataset size
  • Schedule — all systemd timer schedules; runner schedules sourced from fsbackup.conf, fixed timers from their unit files
  • Volumes & Maintenance — ZFS pool disk usage and S3 bucket object count and total size

Running jobs manually

The Run Jobs page lets you trigger any script directly from the UI:

  • Run the doctor for a class
  • Run the runner (daily/weekly/monthly) for a class, with optional --dry-run or --target filter
  • Run retention or S3 export

All jobs stream their output to the page in real time.

Restore

The Restore page provides a guided interface for restoring files from a snapshot. See Restoring data for details.

Authentication

Generate a bcrypt hash for your password:

htpasswd -nbB "" yourpassword | cut -d: -f2

Set it in web/.env (or the environment passed to fsbackup-web.service):

AUTH_ENABLED=true
AUTH_PASSWORD_HASH='$2y$10$...'

Restart the service after changing auth settings:

sudo systemctl restart fsbackup-web