Skip to content

Letdown2491/waypoint-gtk

Repository files navigation

Waypoint

Security Audit License: MIT Platform

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.

Screenshots

Waypoint UI Waypoint Snapshot Scheduling

Waypoint Snapshot Quotas Waypoint Snapshot Backups

Features

  • 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.

Integration

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.

Requirements

  • 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

Installation

./setup.sh install

The 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.

Quick Start

cargo run --bin waypoint

Production Build

cargo build --release

The optimized binaries are written to target/release/. Use cargo run --release to execute the release build directly after compiling.

Command Line

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 100G

See complete CLI reference

Scheduler Service

Enable automatic periodic snapshots:

# Enable the scheduler service
sudo ln -s /etc/sv/waypoint-scheduler /var/service/

# Configure via GUI (Preferences → Scheduled Snapshots)

Documentation

About

A GTK-based snapshot and rollback tool for Btrfs filesystems on Void Linux.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors