A native Linux desktop backup client for Proxmox Backup Server (PBS). BackupPilot wraps the official proxmox-backup-client in a modern GNOME app (GTK4 and Libadwaita) with a background service. You can protect local files and folders, run scheduled backups, monitor job health, and restore from snapshots — without using the command line. https://repos.onesystems.ch
  • Rust 86.1%
  • Shell 7%
  • Python 6.9%
Find a file
Michael Kleger 3c62c955d7 Version 1.0.3
- In-app update on Debian/Ubuntu (`.deb`): download the package that matches the
  host CPU architecture (`amd64` on x86_64, `arm64` on aarch64). Release asset
  names follow `backuppilot-{version}-{arch}.deb`. Previously, when both
  architectures were attached to a release, the updater could fetch the wrong
  package (e.g. `arm64` on an `x86_64` system).
2026-06-13 13:05:51 +02:00
crates Version 1.0.2 2026-06-11 10:39:38 +02:00
data Version 1.0.1 2026-06-09 19:17:56 +02:00
docs Version 1.0.1 2026-06-09 19:17:56 +02:00
packaging Version 1.0.1 2026-06-09 19:17:56 +02:00
po Version 1.0.1 2026-06-09 19:17:56 +02:00
scripts Version 1.0.3 2026-06-13 13:05:51 +02:00
.gitignore Version 1.0.1 2026-06-09 19:17:56 +02:00
build.sh Version 1.0.1 2026-06-09 19:17:56 +02:00
Cargo.lock Version 1.0.2 2026-06-11 10:39:38 +02:00
Cargo.toml Version 1.0.2 2026-06-11 10:39:38 +02:00
CHANGELOG.md Version 1.0.2 2026-06-11 10:39:38 +02:00
LICENSE.md Version 1.0.1 2026-06-09 19:17:56 +02:00
README.md Version 1.0.1 2026-06-09 19:17:56 +02:00
VERSION Version 1.0.2 2026-06-11 10:39:38 +02:00

BackupPilot Logo

BackupPilot

A native Linux desktop backup client for Proxmox Backup Server (PBS).

BackupPilot wraps the official proxmox-backup-client in a modern GNOME app (GTK4 and Libadwaita) with a background service. You can protect local files and folders, run scheduled backups, monitor job health, and restore from snapshots — without using the command line.

Note

Platform support depends on proxmox-backup-client

BackupPilot does not ship its own backup engine — it orchestrates the official PBS client on your machine. Proxmox supports proxmox-backup-client primarily on Debian-based systems (Debian, Ubuntu, and derivatives). On RHEL-compatible distributions, community packages may exist, but support is unofficial and varies. On other Linux setups, whether backups work at all depends on having a working PBS client installed.


What you need

Requirement Notes
Linux desktop GNOME or another desktop with GTK4 / Libadwaita
Proxmox Backup Server A reachable PBS instance with a repository you can use
proxmox-backup-client Must be installed on the system (or on the host when using Flatpak)

Flatpak builds call proxmox-backup-client on the host through a wrapper. For Flatpak install notes (including the offline bundle), see packaging/flatpak/.


Main features

  • Backup profiles — Multiple independent profiles with source paths, exclusions, and schedules (hourly, daily, weekly, at login, or custom cron)
  • Incremental backups — To PBS via proxmox-backup-client; start manually or let the background service run jobs automatically
  • Restore — Browse snapshots and restore files or folders to the original path or another location, with overwrite protection
  • Encryption & limits — Optional client-side encryption keys and per-profile bandwidth limits
  • Smart start conditions — Optional checks for AC power, reachable PBS, or selected network connections before a job starts
  • Health monitoring — Warnings when backups are overdue, with configurable thresholds
  • History & logs — Run history with status, duration, and error details
  • Desktop integration — System tray, quick actions, and notifications (English, German, French, Italian)

Installing BackupPilot

Pre-built packages are the easiest way to get started:

Format Typical use
.deb Debian, Ubuntu, and derivatives
.rpm Fedora, openSUSE, RHEL-compatible systems
.flatpak Offline bundle from releases (app + GNOME Platform — no Flathub). Host must have proxmox-backup-client.

Download the package that matches your system from the publishers website or release archive. After installation, launch BackupPilot from your application menu.

The app installs a user service (backuppilot-daemon) that handles scheduled backups. It should start automatically with your desktop session; you can also enable Start BackupPilot in the background in the app settings.

Latest releases:

https://git.onesystems.ch/backuppilot/app/-/releases


Quick start

  1. Install proxmox-backup-client if it is not already on your system (from your distribution or Proxmox repositories).
  2. Open BackupPilot and follow the setup hints on the dashboard.
  3. Create a backup profile:
    • Add the folders or files you want to back up
    • Connect to your PBS repository (server, datastore, credentials; optional namespace and backup ID)
    • Optionally set encryption, bandwidth limits, and a schedule
  4. Run a test backup from the profile or dashboard and check the activity log.
  5. Restore when needed from the restore view: pick a snapshot, browse the archive, and choose where files should go.

Before each scheduled run, BackupPilot can run preflight checks (network and PBS reachability) so jobs do not start when the server is unavailable.

Pre-backup hooks (per profile) run your own scripts or commands first — for example database dumps into a staging folder — then the normal file backup to PBS runs. Post-backup hooks run afterward (cleanup, notifications, checks). Configure both in the profile editor, in YAML (pre_backup / post_backup), or test with backuppilot-cli pre-backup and post-backup <profile>.


Where your data lives

Item Location
Database ~/.local/share/backuppilot/backuppilot.db
Configuration ~/.config/backuppilot/

Uninstalling the app does not remove these directories automatically; back them up or delete them manually if you no longer need them.


Tips

  • Use backuppilot --help for command-line options (e.g. opening a specific view).
  • For crashes or a frozen UI, try: RUST_BACKTRACE=1 backuppilot --debug
  • Interface language follows your system locale when a translation is available.

Building from source

This section is for developers and advanced users who want to compile BackupPilot themselves.

Repository layout

This repository is a Rust workspace with these crates:

Crate Binary Role
backuppilot-core Models, SQLite, PBS client integration
backuppilot-daemon backuppilot-daemon D-Bus background service
backuppilot-gui backuppilot GTK4 / Libadwaita user interface
backuppilot-cli backuppilot-cli Command-line tools

Prerequisites

  • Rust ≥ 1.78 (rustup)
  • proxmox-backup-client on the system (for real backup runs)
  • Development libraries: GTK4, Libadwaita, gettext

Debian / Ubuntu:

sudo apt install build-essential pkg-config \
  libgtk-4-dev libadwaita-1-dev gettext libintl-dev \
  libnotify-bin python3-pil

libnotify-bin provides notify-send for desktop notifications when backups finish.

From this repository root:

./build.sh              # interactive menu
./build.sh local 1.0.0   # release build for local testing
./build.sh all 1.0.0     # .deb, .rpm, and Flatpak under build/dist/

This keeps VERSION and Cargo.toml in sync. Packaging templates live in packaging/. Run ./build.sh help for all targets.

Upload packages to GitLab Generic Packages and/or OneRepo (prints asset names and URLs for releases):

# Optional: cp scripts/.env.example scripts/.env and fill in tokens
export GITLAB_URL="https://git.onesystems.ch"
export PROJECT_ID="<project-id>"
export VERSION="1.0.0"
export TOKEN="<gitlab-private-token>"
export ONEREPO_TOKEN="<onerepo-token>"
export ONEREPO_PROJECT="backuppilot"
./scripts/upload-gitlab-packages.sh

# Only OneRepo:
./scripts/upload-gitlab-packages.sh --onerepo-only

# Only GitLab:
./scripts/upload-gitlab-packages.sh --gitlab-only

Manual build and run

cargo build --release

# Background service (separate terminal or session)
./target/release/backuppilot-daemon

# GUI
./target/release/backuppilot

# Verbose diagnostics
RUST_BACKTRACE=1 ./target/release/backuppilot --debug

Manual install (user session)

./build.sh local 1.0.1 --install

This installs to ~/.local/bin for the current user only, adds ~/.local/bin to ~/.profile and ~/.bashrc (once), and registers the desktop entry with a full path. Open a new terminal or run source ~/.profile after install.

For all users on the machine, use the .deb package instead (/usr/bin, no PATH setup).

Icons

App icons are generated from docs/icon.png:

./scripts/generate-icons.sh

Flatpak offline bundle (for release archives):

./build.sh flatpak-offline 1.0.0

Packaging templates and install notes: packaging/flatpak/.

Translations

Languages are listed in po/LINGUAS (German, English, French, Italian).

./scripts/i18n-update.sh   # refresh .pot and .po (optional: .venv-i18n)
./scripts/i18n-compile.sh
LANG=de_DE.UTF-8 ./target/release/backuppilot

License

BackupPilot is licensed under the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later). See LICENSE.md for details.

Release history: CHANGELOG.md.