-
Notifications
You must be signed in to change notification settings - Fork 0
Home
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.
| 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 |
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.
Backup Modes
- Mirror Backups: Creates readable directory structures preserving original file layout
-
Archive Backups: Generates compressed
.tar.gzarchives 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
| 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 |
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.
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.
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.AppImageSee Installation for detailed instructions including dependencies and running from source.
- Configure Backup Paths: Set mirror and archive directories in Configuration tab
- Add Dotfiles: Add configuration files and directories to backup library
- Select Options: Choose mirror/archive mode, compression level, verification
- Execute Backup: Click Backup button (Ctrl+B) to start operation
- Restore Files: Select items in Restore tab and restore to original locations
See User Guide for comprehensive usage documentation.
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.
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)
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)
Preserve system configuration:
- Package manager configs (apt, dnf, pacman)
- Network configuration backups
- Service configuration files
- Custom scripts and tools
Transfer configurations between systems:
- New machine setup with existing dotfiles
- Distribution migration (Ubuntu → Fedora)
- Desktop environment changes (GNOME → KDE)
- Development environment replication
- GitHub Repository: L3DigitalNet/DFBU-Dotfiles-Backup-Utility
- Issue Tracker: GitHub Issues
- Discussions: GitHub Discussions
- Releases: GitHub Releases
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.
- Documentation: Start with User Guide and FAQ
- Troubleshooting: Check Troubleshooting for common issues
- Questions: Ask in GitHub Discussions
- Bugs: Report in GitHub Issues
DFBU is released under the MIT License. See LICENSE for details.
Navigation: Features | Installation | User Guide | Configuration | Architecture