Skip to content

pmaxhogan/driven

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

295 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Driven

One-way, encrypted backup of your local folders to your own Google Drive. Fast, battery- and network-aware, with an in-app restore browser. Desktop app for Windows, macOS, and Linux, built with Tauri 2 + Vue 3 + Rust.

Driven mirrors the folders you choose into your own Google Drive in one direction only: local additions and changes are uploaded, and your source folders stay the single source of truth. With per-source client-side encryption turned on, file names and contents are encrypted on your machine before they ever leave it, so Google stores only ciphertext.

Driven's first-run setup wizard in dark mode: a teal-accented welcome step with the top navigation (Activity, Settings, Restore, About).

Driven uses your own Google OAuth credentials, so your files never pass through anyone else's servers. The first-run wizard includes a step-by-step, plain-English guide to creating that credential in the Google Cloud Console:

The credentials step with an expanded, numbered walkthrough for creating a Google OAuth client ID and secret.

Features

  • One-way backup to your own Google Drive (no second cloud bill, no two-way sync surprises).
  • Optional per-source client-side encryption (XChaCha20-Poly1305 for contents and file names; a BIP39 recovery phrase guards the master key).
  • Scanner that honors .gitignore, built-in and custom exclude rules, and a configurable symlink policy.
  • Concurrent, paced executor with retries and resumable uploads.
  • Battery and network awareness: backups defer on battery and on metered or offline networks, then resume automatically.
  • Windows Volume Shadow Copy support so locked files (Outlook PSTs, running DB files, VM disks) still back up.
  • In-app restore browser with full-text file-name search and streaming decrypt.
  • Activity dashboard with a live tail and filterable history.
  • In-app auto-update with signed update manifests and a stable / dev channel selector.
  • Anonymous, opt-out telemetry (coarse counts only; never file names, paths, or content).

Install

Download the installer for your platform from the GitHub Releases page. Pick the latest release and grab the asset for your OS:

  • Windows: .msi or .exe (NSIS) installer
  • macOS: .dmg (universal, Apple Silicon and Intel)
  • Linux: .AppImage (portable) or .deb (Debian / Ubuntu)

Unsigned-binary notes (important)

Driven's V1 binaries are not yet code-signed with a paid OS certificate, so the operating system will warn you the first time you run them. The binaries are the same artifacts the public CI release pipeline produced; the warnings are about the missing certificate, not about the contents. You bypass them once.

Windows (SmartScreen)

When you run the installer, Windows SmartScreen may show "Windows protected your PC". Click "More info", then "Run anyway". After the first install, SmartScreen stops warning for that version.

macOS (Gatekeeper)

macOS will refuse to open an unsigned app on a double-click. Either:

  • Right-click (or Control-click) the app in Finder, choose "Open", then confirm "Open" in the dialog, or

  • Remove the quarantine attribute from a terminal:

    xattr -dr com.apple.quarantine "/Applications/Driven.app"

macOS auto-updater caveat (V1)

Because the macOS build is not signed with a Developer ID in V1, the in-app auto-updater is NOT reliable on macOS: the OS may block the silently-staged update from launching. This is a known V1 limitation. On macOS, update Driven by re-downloading the latest .dmg from the Releases page and reinstalling, rather than relying on the in-app updater. On Windows and Linux the in-app updater works normally. Code signing on macOS is tracked for a future release, after which the in-app updater will be supported there too.

First run: connect Google Drive (bring your own OAuth credentials)

Driven uses YOUR own Google OAuth client credentials rather than a shared app-wide client. This keeps you in control of your Google project and avoids a shared rate-limit / verification bottleneck. On first launch, the setup wizard walks you through:

  1. Creating (or reusing) a Google Cloud project and enabling the Google Drive API.
  2. Creating an OAuth 2.0 Client ID of type "Desktop app" and pasting its client id and client secret into the wizard. Driven uses the PKCE loopback flow, so the secret stays on your machine; refresh tokens are stored only in the OS keychain.
  3. Signing in to the Google account you want to back up to and granting Drive access.
  4. Choosing the folders to back up and (optionally) enabling encryption, which generates and shows your recovery phrase. Write the recovery phrase down: it is the only way to decrypt your backup if you lose the machine.

The wizard explains each step in-app. If you skip a step you can finish it later from Settings.

Update channels

Driven has two update channels, selectable in Settings > About:

  • Stable: tagged releases (recommended for everyone).
  • Dev: pre-release builds for testing upcoming changes; expect rough edges.

The About screen shows the current version, the active channel, and the release notes for the installed version (sourced from CHANGELOG.md). See the macOS updater caveat above before relying on in-app updates on macOS.

Build from source

Prereqs:

  • Rust stable (rustup install stable)
  • Node.js 22+ and pnpm 10+
  • cargo install tauri-cli@^2 cargo-deny cargo-watch just (Windows users can install just via scoop install just)
  • Linux build deps: libwebkit2gtk-4.1-dev libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-dev libsoup-3.0-dev javascriptcoregtk-4.1

Clone and run in dev mode:

git clone https://github.com/pmaxhogan/driven
cd driven
pnpm --dir ui install
cargo tauri dev

Produce installers (output under src-tauri/target/release/bundle/):

cargo tauri build

Useful recipes (see the justfile):

just test    # cargo test --workspace + vitest
just lint    # cargo fmt --check + clippy + eslint
just bundle  # cargo tauri build
just deny    # cargo deny check

Run via Docker

The headless tools - the debugging CLI (driven-cli) and the stress / chaos harness (driven-chaos) - ship as a public image at ghcr.io/pmaxhogan/driven. The image does not include the desktop GUI; use the native installers above for that.

Tags:

  • :latest / :stable - the highest stable release.
  • :dev / :nightly - the latest main commit.
  • :vX.Y.Z - an exact release; :vX - the highest stable build of major X.
# Default (no args) prints the CLI help:
docker run --rm ghcr.io/pmaxhogan/driven

# Run the CLI as normal:
docker run --rm ghcr.io/pmaxhogan/driven driven-cli --help

# Run the long chaos soak (issue #23) - the hermetic sweep then a seeded fuzz:
docker run --rm ghcr.io/pmaxhogan/driven:dev chaos-soak --duration 6h

# Or invoke the chaos harness directly:
docker run --rm ghcr.io/pmaxhogan/driven driven-chaos fuzz --duration 6h

Design docs

  • design/DESIGN.md - architecture, locked decisions, resolved defaults
  • design/SPEC.md - concrete crate / schema / IPC / config detail
  • design/ROADMAP.md - M0..M10 phased milestones
  • design/STRESS_HARNESS.md - chaos / fuzz / soak test catalogue
  • design/IMPLEMENTATION.md - implementation orchestration plan

Contributing

See CONTRIBUTING.md for the local gates, the Conventional Commits requirement, and the branch / PR flow, and CODE_OF_CONDUCT.md for community expectations.

License

Dual-licensed under either of:

at your option. See LICENSE for the summary and SPDX identifier.

Contributions intentionally submitted for inclusion in Driven by you, as defined in the Apache-2.0 license, shall be dual-licensed as above, without any additional terms or conditions.

About

One-way local-folder backup to Google Drive. Fast, encrypted, battery-aware, with restore browser.

Resources

License

Unknown and 2 other licenses found

Licenses found

Unknown
LICENSE
Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Code of conduct

Contributing

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors