Desktop backup application for Pubky users to maintain local copies of all their published data from their homeserver.
Note: This tool is under active development. Behaviour and features may change.
- GitHub: https://github.com/pubky/pubky-backup
- Platforms: Linux, macOS, Windows
A lightweight background process that continually keeps a Pubky user’s local backup in-sync with their published data. Runs in the system tray and automatically polls for changes.
Role in Credible Exit
Pubky Backup enables credible exit by giving users a local copy of their data. With a backup, users can:
- Migrate: Sign up with a new homeserver and restore their data
- Verify: Compare local backup against homeserver to detect tampering
- Recover: Restore data if homeserver becomes unavailable
See Security Model for the full trust model and recovery scenarios.
Core Features
- Continuous Sync: Polls the homeserver every 30 seconds for new events
- Local Backup: Stores all published data (
/pub/resources) to a local directory - Snapshot Creation: Timestamped ZIP archives for point-in-time recovery
- Multi-Pubky Support: Backup multiple pubky keys, each in its own directory
- System Tray: Background operation with sync status indicator
- Force Sync: Manual trigger for immediate sync
How It Works
- User enters their pubky (app validates format)
- Uses PKDNS to discover the homeserver
- Fetches events from the homeserver’s
/events/endpoint with cursor-based pagination - Processes PUT events (download data) and DELETE events (remove local files)
- Polls every 30 seconds, persisting cursor for restart continuity
Tech Stack
Built with Rust (Tauri backend) and TypeScript (Vite frontend). Uses the pubky crate for homeserver communication and OpenDAL for filesystem abstraction.
See the repository for build instructions, storage layout, and API reference.