Waypoint is a GTK/libadwaita snapshot and rollback tool with a built in scheduling service for Btrfs filesystems on Void Linux. For a complete walkthrough, see the User Guide. For advanced users, waypoint-cli is available and has full feature parity with the GUI application.
Waypoint integration is available on Nebula >= 1.3.0 to automatically create system snapshots before performing system upgrades.
- System Snapshots & Rollback - Create, restore, compare, and verify snapshots with rollback preview showing package changes and affected subvolumes
- Smart Backups - Passwordless automatic backups for admin users with filters (All, Favorites, Critical), incremental support for Btrfs, and queue management for disconnected drives
- Exclusion Patterns - Reduce snapshot sizes by excluding caches, temporary files, and build artifacts with customizable patterns
- Flexible Scheduling - Multiple concurrent schedules (hourly, daily, weekly, monthly) with timeline-based retention and automatic backup integration
- Package Tracking - Automatic XBPS package state tracking with version comparison and visual diff viewer
- Analytics Dashboard - Snapshot statistics, space usage trends, and actionable insights
- Quota Management - Configure Btrfs quotas with automatic cleanup triggers and disk space warnings
- Modern Interface - GTK4 + libadwaita UI with theme switching, real-time monitoring, and comprehensive CLI tools
- Security First - Privilege-separated architecture with D-Bus, Polkit, desktop-friendly authentication, audit logging, and input validation
See full feature list here. GRUB integration is planned but not currently implemented since I use efistub on my Void machine. This should be implemented in the next major release. A Snapper to Waypoint migration tool is also in the works for a future update.
Other Void Linux tools can talk to the privileged helper over D-Bus to trigger snapshots, retention, scheduler changes, and more. See API.md for the complete interface used by Nebula and ARCHITECTURE.md for a high-level overview of the components and on-disk layout.
- Void Linux with Btrfs filesystem
- GTK 4.10+ and libadwaita 1.4+ runtimes
- Rust 1.70 or newer
- DBus and Polkit
- Rsync for snapshot backups to non-Btrfs drives
- @snapshots subvolume mounted at
/.snapshots
./setup.sh installThe helper script installs all required dependencies via xbps-install, builds the release binaries, installs them into /usr/bin, registers the desktop entry, D-Bus service, and Polkit policies. Use sudo ./setup.sh uninstall to remove those assets.
cargo run --bin waypointcargo build --releaseThe optimized binaries are written to target/release/. Use cargo run --release to execute the release build directly after compiling.
Waypoint includes a CLI tool for scripting and automation:
# List snapshots
waypoint-cli list
waypoint-cli list --verbose
# Create snapshot
waypoint-cli create "snapshot-name" "Description" "/,/home"
# Restore snapshot
waypoint-cli restore "snapshot-name"
# Backup to external drive
waypoint-cli backup "snapshot-name" "/mnt/backup-drive"
# Restore individual files
waypoint-cli restore-files "snapshot-name" "/etc/fstab"
# Manage quotas
waypoint-cli quota enable --simple
waypoint-cli quota set-limit 100GEnable automatic periodic snapshots:
# Enable the scheduler service
sudo ln -s /etc/sv/waypoint-scheduler /var/service/
# Configure via GUI (Preferences → Scheduled Snapshots)- User Guide - Complete walkthrough for new users
- CLI Reference - Full command-line documentation
- Troubleshooting - Common issues and solutions
- Recovery Guide - Boot failure recovery procedures
- Features - Comprehensive feature list
- API Reference - D-Bus integration for external tools
- Architecture - System design and components
- Security - Security configuration guide



