Skip to content

DonnieDice/protondrive-linux

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

665 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ProtonDrive Linux

CI downloads license issues

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.


About

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.

Features

  • 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

Installation

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.


Building from Source

# 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

Prerequisites

  • Rust (stable)
  • Node.js 22+
  • WebKitGTK 4.1, GTK3, libayatana-appindicator, OpenSSL, libsoup 3.0
  • See Contributing for distro-specific setup

CI/CD Pipeline

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.


Documentation

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

2-Way Live Sync (Experimental)

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.


Contributing

Contributions are welcome. All development follows the workflow protocol:

  1. Issue → Create a tracking issue
  2. Branchfeature/N, fix/N, or chore/N
  3. PR → Open against main, link to issue
  4. Review → Address CI checks and review feedback
  5. 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.

About

🐧The first unofficial desktop client for Proton Drive on Linux. Fast, lightweight, and built with Tauri.

Resources

Code of conduct

Contributing

Security policy

Stars

333 stars

Watchers

9 watching

Forks

Packages

 
 
 

Contributors