Skip to content
Chris Purcell edited this page Feb 7, 2026 · 2 revisions

DFBU - DotFiles Backup Utility

DFBU is a Linux desktop application designed for reliable backup and restoration of configuration files. Built with Python and PySide6/Qt, DFBU provides a modern GUI for managing dotfiles, configuration directories, and system backups.

Quick Links

Section Description
Features Comprehensive feature overview
Installation Installation instructions and requirements
User Guide Step-by-step usage instructions
Configuration Configuration file documentation
Architecture Technical architecture and design
Contributing Development guidelines and contribution process
Troubleshooting Common issues and solutions
FAQ Frequently asked questions

Project Overview

What is DFBU?

DFBU solves the common problem of managing configuration files across Linux systems. Whether you're maintaining dotfiles like .bashrc and .vimrc, or backing up entire configuration directories like ~/.config/ and ~/.local/share/, DFBU provides a centralized, reliable solution.

Key Capabilities

Backup Modes

  • Mirror Backups: Creates readable directory structures preserving original file layout
  • Archive Backups: Generates compressed .tar.gz archives for space-efficient storage
  • Dual Mode Support: Can create both mirror and archive backups simultaneously

Safety Features

  • Pre-Restore Backups: Automatically backs up existing files before restoration
  • Verification System: Optional post-backup verification with size and hash checking
  • Intelligent Skip Detection: Avoids redundant copies when files haven't changed

Organization & Management

  • Profile System: Save and switch between different backup configurations
  • Tag-Based Filtering: Organize dotfiles with tags and filter by application/category
  • Exclusion Management: Temporarily exclude specific dotfiles from backup operations
  • Size Analysis: Pre-backup size warnings with configurable thresholds

User Experience

  • PySide6/Qt GUI: Modern, responsive desktop interface
  • Keyboard Shortcuts: Efficient operation with configurable hotkeys
  • Verbose Logging: Detailed operation logs with individual file tracking
  • Progress Tracking: Real-time progress display for all operations

Technology Stack

Component Technology Version
Language Python 3.14+
GUI Framework PySide6 6.6+
Package Manager UV Latest
Configuration YAML ruamel.yaml
Testing pytest pytest-qt
Type Checking mypy Strict mode

Architecture Highlights

DFBU implements clean software engineering practices:

  • MVVM Pattern: Model-View-ViewModel architecture for separation of concerns
  • SOLID Principles: Single responsibility, dependency inversion, interface segregation
  • Component Architecture: Modular design with specialized components (ConfigManager, FileOperations, BackupOrchestrator, etc.)
  • Type Safety: 100% type hint coverage with strict mypy enforcement
  • Test Coverage: 82% coverage with 553 tests across 25 test files

See Architecture for detailed technical documentation.

Current Status

Version: 1.2.2 License: MIT Platform: Linux Status: Production-ready

Recent Updates (v1.2.x):

  • GitHub release automation with AppImage distribution
  • Verbose logging with individual skip tracking
  • Hide missing files checkbox
  • Config validation, export, and editor integration
  • Unified file/directory picker

See the Changelog for complete version history.

Getting Started

Installation

DFBU is distributed as an AppImage for maximum compatibility:

# Download latest release
wget https://github.com/L3DigitalNet/DFBU-Dotfiles-Backup-Utility/releases/latest/download/DFBU-x86_64.AppImage

# Make executable
chmod +x DFBU-x86_64.AppImage

# Run
./DFBU-x86_64.AppImage

See Installation for detailed instructions including dependencies and running from source.

Basic Usage

  1. Configure Backup Paths: Set mirror and archive directories in Configuration tab
  2. Add Dotfiles: Add configuration files and directories to backup library
  3. Select Options: Choose mirror/archive mode, compression level, verification
  4. Execute Backup: Click Backup button (Ctrl+B) to start operation
  5. Restore Files: Select items in Restore tab and restore to original locations

See User Guide for comprehensive usage documentation.

Configuration Files

DFBU uses YAML configuration split across three files:

  • settings.yaml: Backup paths, options, and global settings
  • dotfiles.yaml: Dotfile library with paths, descriptions, and tags
  • session.yaml: Temporary exclusions and session state

Configuration Locations:

  • AppImage/packaged: ~/.config/dfbu/
  • Running from source: DFBU/data/

See Configuration for detailed file format documentation.

Use Cases

Personal Dotfiles Management

Manage dotfiles across multiple machines:

  • Bash/Zsh configuration (.bashrc, .zshrc)
  • Terminal emulator configs (Alacritty, Kitty, Terminator)
  • Editor configurations (Vim, Emacs, VS Code)
  • Git configuration (.gitconfig, .gitignore_global)

Application Configuration Backup

Backup entire application config directories:

  • Desktop environments (KDE, GNOME settings)
  • Development tools (.config/Code/, .config/nvim/)
  • Browsers (Firefox, Chrome profiles)
  • Media applications (MPV, VLC configurations)

System State Preservation

Preserve system configuration:

  • Package manager configs (apt, dnf, pacman)
  • Network configuration backups
  • Service configuration files
  • Custom scripts and tools

Migration & Synchronization

Transfer configurations between systems:

  • New machine setup with existing dotfiles
  • Distribution migration (Ubuntu → Fedora)
  • Desktop environment changes (GNOME → KDE)
  • Development environment replication

Community & Support

Resources

Contributing

DFBU is open source (MIT License) and welcomes contributions:

  • Bug reports and feature requests via GitHub Issues
  • Code contributions via pull requests
  • Documentation improvements
  • Community support in Discussions

See Contributing for development setup and guidelines.

Getting Help

License

DFBU is released under the MIT License. See LICENSE for details.


Navigation: Features | Installation | User Guide | Configuration | Architecture

Clone this wiki locally