Pika Backup
A simple GNOME backup application written in Rust, providing a friendly GTK4 interface for BorgBackup with support for local and remote repositories.
Pika Backup is a polished GTK4 application that wraps the powerful BorgBackup
engine in a clean, approachable GNOME interface written entirely in Rust. It
handles the complexity of deduplication, encryption, and scheduling so you can
set up reliable backups without touching the command line. With over 100,000
downloads on Flathub, it is one of the most widely adopted backup solutions in
the Linux desktop ecosystem.
Features
- Deduplication — Only changed blocks of data are transferred after the initial backup, keeping subsequent backups fast and storage use minimal.
- Encryption — All repositories are protected with a user-supplied passphrase using BorgBackup's AES-CTR encryption with HMAC-SHA256 authentication.
- Local and remote repositories — Back up to an external drive, USB stick, a remote server over SSH/SFTP, or a hosted BorgBase account.
- Scheduled automatic backups — Configure hourly, daily, or weekly backup schedules; the app respects battery state and skips scheduled runs on low power.
- Browse and restore — Navigate archive contents in a file-manager-like view and restore individual files or directories without restoring an entire snapshot.
- Repository integrity checking — Run a consistency check against any repository directly from the UI to verify that your backups are intact.
- Pre/post backup hooks — Execute custom shell scripts before or after each backup run for tasks like database dumps or service notifications.
- Multiple configurations — Manage several independent backup configurations (home directory, project folders, etc.) from one window, each with its own schedule and destination.
- Battery-aware scheduling — Scheduled backups are automatically deferred when the system is on battery to avoid draining power during mobile use.
Installation
The recommended installation method is Flatpak from Flathub, which ships the latest release on all major distributions.
# Flatpak (all distributions — recommended)
flatpak install flathub org.gnome.World.PikaBackup
Native packages are also available in several distributions:
# Arch Linux (AUR)
paru -S pika-backup
# or
yay -S pika-backup
# Nix
nix-env -iA nixpkgs.pika-backup# Debian / Ubuntu / Fedora
# Native packages are not yet available in stable Debian or Ubuntu.
# Fedora ships Pika Backup in its repository:
sudo dnf install pika-backup
BorgBackup itself is a dependency and is bundled in the Flatpak. If you install
via a native package, ensure borgbackup is also installed:
# Debian / Ubuntu
sudo apt install borgbackup
# Fedora
sudo dnf install borgbackupQuick Start
Creating your first backup
- Launch Pika Backup and click Set Up Backup.
- Choose a destination — a local path (external drive) or a remote location (SSH/SFTP or BorgBase URL).
- Set a strong encryption passphrase and click Create.
- Select the directories you want to include (defaults to your home directory).
- Click Back Up Now to run the first full backup.
After the first run, only changed data is transferred, so subsequent backups complete in seconds to minutes.
Scheduling automatic backups
In the backup configuration panel, click Schedule and choose a frequency:
# Pika Backup manages scheduling via systemd user timers internally.
# You can inspect the generated timer with:
systemctl --user list-timers | grep pikaBrowsing and restoring files
Click Archives on any configuration to see a chronological list of snapshots. Select a snapshot and click Browse to open an interactive file browser. Right-click any file or folder and choose Restore to recover it to its original location or a custom path.
Remote backup over SSH
When setting up a new repository, select Remote Location and enter an SFTP URL:
# Example SFTP destination format
ssh://user@backup.example.com:22/path/to/repo
# Pika Backup calls borg under the hood, equivalent to:
borg init --encryption=repokey ssh://user@backup.example.com/path/to/repo
Ensure your SSH key is loaded in the agent or that the remote host is in
~/.ssh/known_hosts before connecting.
Configuration and Hooks
Pre- and post-backup scripts let you extend Pika Backup for more complex workflows. Scripts are run as the current user and receive the backup status in the environment.
# Example pre-backup hook: dump a PostgreSQL database
#!/usr/bin/env sh
pg_dump mydb > /home/user/backups/mydb.sql# Example post-backup hook: send a notification on failure
#!/usr/bin/env sh
if [ "$PIKA_BACKUP_STATUS" = "failed" ]; then
notify-send "Backup failed" "Check Pika Backup for details."
fi
Hook scripts are configured per backup profile under Preferences → Hooks in the UI.
Pika Backup vs Déjà Dup
Both are GNOME-targeted backup tools, but they differ in scope and backend flexibility:
| Feature | Pika Backup | Déjà Dup |
|---|---|---|
| Backend | BorgBackup | Duplicati / Duplicity |
| Deduplication | ✅ | ❌ |
| Browse & restore individual files | ✅ | ✅ |
| Remote (SSH/SFTP) | ✅ | ✅ |
| BorgBase support | ✅ | ❌ |
| Pre/post hooks | ✅ | ❌ |
| Written in Rust | ✅ | ❌ |
| Flathub downloads | 100,000+ | 500,000+ |
Pika Backup is the better choice when deduplication, Borg's mature encryption, or custom hooks are important. Déjà Dup remains simpler for users who only need basic scheduled home-directory backups.