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.
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
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:
feature/N, fix/N, or chore/Nmain, link to issueCommit 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.
$ claude mcp add protondrive-linux \
-- python -m otcore.mcp_server <graph>