This is the public GitHub mirror. Active development, CI/CD pipelines, and packaging happen on self-hosted GitLab. Every commit here is mirrored from there. See CI Authority & GitHub Mirroring for the full policy.
An unofficial desktop client for Proton Drive on Linux, built with Tauri and WebKitGTK.
ProtonDrive Linux wraps Proton's web application in a native desktop window with system tray integration, native file sync, and comprehensive cross-distribution packaging. Authentication, encryption, and core file operations are handled by Proton's web app — this project provides the native shell and Linux integrations.
- Native desktop window with system tray integration
- Login, CAPTCHA, and two-factor authentication
- Proton Drive file browsing and downloads
- Experimental 2-way live sync (watch local folders, apply remote changes)
- Native packages for 17+ Linux targets
- Built with Rust + Tauri for small footprint and low resource usage
Download from GitHub Releases.
| Format | Targets |
|---|---|
| AppImage | Universal Linux |
| DEB | Debian 12/13, Ubuntu 24.04/26.04 |
| RPM | Fedora 43/44, EL10, openSUSE Tumbleweed |
| Flatpak | GNOME 49/50 |
| Snap | core24, core26 |
| APK | Alpine 3.20/3.22/3.23 |
| AUR | proton-drive (Arch Linux) |
Packages are not yet available on Flathub, Snap Store, or system repositories.
# Clone the repository
git clone https://github.com/DonnieDice/protondrive-linux.git
cd protondrive-linux
# Build WebClients (Proton's web app)
bash scripts/build-webclients.sh
# Install dependencies and build
npm ci
npx tauri build --bundles deb- Rust (stable)
- Node.js 22+
- WebKitGTK 4.1, GTK3, libayatana-appindicator, OpenSSL, libsoup 3.0
- See Contributing for distro-specific setup
The project runs a comprehensive CI/CD pipeline on self-hosted GitLab with 7 quality gates before builds:
| Stage | Jobs |
|---|---|
| Lint | ShellCheck, shfmt, yamllint, actionlint, GitLab CI lint, Ruff (Python) |
| Test | Python script validation, version consistency, Rust coverage |
| Security | Gitleaks secrets, cargo-deny, npm audit, Trivy FS scan |
| Build | 17 platform targets (APK, AppImage, AUR, DEB, Flatpak, RPM, Snap) |
| Smoke | Install-and-run tests (deb, rpm, AppImage) |
| Sign | Cosign artifact signing, SLSA provenance attestation, SBOM generation |
| Release | Artifact upload, checksums, release creation |
| Publish | AUR, Flathub, Snap Store |
Builds are manual on MRs/branches and automated on v* tags. See CI Pipeline Reference.
| Architecture | System design, build system, proxy, navigation |
| Build & Packaging | Support matrix, packaging policy, new target checklist |
| CI/CD | Pipeline reference, authority, roadmap, release process |
| Sync System | Live sync module, database, regression runbook |
| Authentication | Auth flow, SSO authentication |
| WebView | WebView config, URL logging, storage |
| API Reference | Tauri commands, events, REST endpoints |
| Contributing | Dev setup, build rules, packaging guide |
| Workflow | Branching, PR, review, merge protocol |
| Changelog | Release history |
| Security | Vulnerability reporting |
The native sync layer watches a local folder and applies remote file changes. The web frontend must call Tauri commands to enable it.
| Command | Description |
|---|---|
start_sync(path) |
Start watching a folder under $HOME |
stop_sync() |
Stop watching |
get_sync_status() |
Returns { enabled, folder_path, poll_interval_seconds } |
handle_remote_update(change) |
Apply remote create/update/delete |
read_sync_file(rootPath, relativePath) |
Read local file for upload (max 100 MB) |
See Live Sync Module for the full contract and constraints.
Contributions are welcome. All development follows the workflow protocol:
- Issue → Create a tracking issue
- Branch →
feature/N,fix/N, orchore/N - PR → Open against
main, link to issue - Review → Address CI checks and review feedback
- Merge → Squash-merge after approval
Commit messages follow (#N) Description format. See CONTRIBUTING.md for detailed build and packaging rules.
Disclaimer: This project is not affiliated with, endorsed by, or connected to Proton AG. Proton Drive is a trademark of Proton AG. This is an independent community project.