Skip to content

Systems

DFBU

A Linux desktop application for backing up and restoring configuration files, with mirror and archive modes, post-backup verification, and a safety backup before any restore.

Identification

Reference
L3D-SYS-014
Class
application / tool
Maturity
stable
Primary field
Reliability & Assurance
Fields
Reliability & Assurance, Infrastructure & Operations
Practices
Control, Protect, Verify, Recover
Record route
/systems/dfbu
Content reviewed
2026-09-03

Purpose

Configuration files accumulate. A working Linux desktop is the product of years of small edits to ~/.bashrc, ~/.config, and ~/.local/share, none of them individually memorable and all of them expensive to reconstruct. Backing that up is easy; restoring it correctly, onto a machine that already has files in those paths, is where it goes wrong.

DFBU is a desktop application for both halves, built around the position that the restore is the dangerous operation and should be treated as one.

Operating model

A backup runs in one or both of two modes. A mirror is a readable folder tree — inspectable with any file manager, and recoverable by hand if the application is unavailable. An archive is a compressed .tar.gz, for keeping a point in time. They answer different questions, so the choice is offered rather than decided.

After a backup, verification is available as a distinct step, including hash verification, so “copied” and “copied correctly” stay separate claims.

A restore can take a safety backup of what is about to be overwritten, before it overwrites it. That is the operation the design is really about: it means a restore has a way back, so choosing the wrong profile is a recoverable mistake rather than a destructive one.

Profiles save a selection and its options, so a repeated backup is the same backup rather than a fresh set of decisions each time. Verbose logs and per-file skip logging make the result auditable: a file that was not copied says which one and why, rather than being absent from a summary.

Practices

Protect. The pre-restore safety backup is the protection, and it guards against the operator rather than against the machine — the failure this system expects is a person restoring the wrong thing over a working configuration.

Verify. Optional post-backup and hash verification exist because a backup nobody has checked is a belief. Keeping verification a separate step also means its absence is visible.

Recover. Both directions are first-class. Mirror mode in particular keeps recovery possible without the application: a readable tree can be copied back by hand, which is the right property for a tool whose job is to still work on a day when things are broken.

Control. Profiles, session exclusions, and hide-missing-sources handling make the set of files an explicit, reviewable selection rather than a wildcard that quietly grows.

Architecture

A PySide6/Qt desktop application in Python, distributed as an AppImage so it runs without an install step or a package repository. Configuration is three YAML files with separate jobs: settings.yaml for paths and options, dotfiles.yaml for the library of entries, and session.yaml for temporary exclusions.

Splitting the third one out is deliberate. A temporary exclusion is not the same fact as a permanent preference, and storing them together is how a one-off decision silently becomes the configuration.

Evidence

The repository is public under MIT with published releases, and the AppImage is downloadable without an account. Its own verification gate — Ruff, mypy, and pytest — runs in CI.

It is a personal tool published openly, not a supported product. There is no warranty, no support arrangement, and no commitment to a release schedule.

Availability

Use directly open-source · free-download

Open source under MIT, with published AppImage releases. Download it or read the source.

View source for DFBU, opens in a new tab

Capabilities demonstrated

Repeatable work this system is evidence for. The relationship is authored on this record.

Evidence

Systems

Stack

Python · PySide6 · Qt

There is no paid offering, price, or engagement on this site today. When one exists it will appear here as a record, with its scope and its exclusions.