Skip to content

swampapp/swamp

Repository files navigation

Swamp

A GNOME application to index, search, stream, download and export files in Restic repositories.

Quick start guide.

⚠️ Currently alpha quality:

  • Ubuntu Desktop 20.04 (with GNOME) is the only environment currently supported
  • It may crash often
  • It may behave unreliably
  • The on-disk data and index format may change before the final release, and data migration isn't guaranteed, forcing you to re-index your repositories eventually
  • It may have obvious and important issues that could compromise the safety and security of your data
  • Large chunks of the code are still in a PoC state and may lack readability, proper error handling or reporting
  • Some functionality is still missing

There's a more comprehensive overview of what's missing for those technically inclined or willing to contribute in the release plan document.

Features

Read-only

Swamp doesn't write to your Restic repository. It works just fine with read-only repositories.

Desktop integration

The GNOME keyring is the place where the repository credentials are stored. Other features like MPRIS (to play media files) and UPower (to prevent the indexing process when on battery) are planed.

Dark/Light themes are also supported.

Supports any Restic backend

Swamp is powered by Restic, meaning that it can index and search S3, Rest Server, local, rclone backends, etc. (Limited to S3, local and rest in the current alpha version)

Powerful query language

Swamp uses and extends the Bleve query language to make locating/searching for backed up files easy.

With the query language you can do things like:

  • Search for files bigger or smaller than a given size
  • Find duplicated files
  • Find documents, videos, audio files, etc easily
  • Find recently backed up files
  • Find recently modified files

And much more. See the query language tutorial for some additional examples.

Reasonably fast indexing

Capable of indexing 1000+ files per second in a regular laptop. Polls for new Restic snapshots regularly to index them automatically.

Tagger

Tag you backed up files to quickly locate them later.

Multiple repositories

Supports indexing and searching multiple Restic repositories. The author uses Restic repositories as "append-only, deduplicated and encrypted storage servers" (where files are never pruned/deleted) and shares some of those repositories with family members and friends, so Swamp tries to make it easier to search across them (the main motivation behind creating Swamp).

Stream Download and Export your backed up data

Swamp can stream your video or audio files or download/export any file and version to the desired location.

Keyboard friendly

Swamp provides quick access to the most important features via keyboard shortcuts.

See keyboard shortcuts documentation.

Command line interface

Swamp includes a command line interface (swp) to query the repositories after being indexed.

Quick Start Guide

The quick start guide will get you started with swamp. Don't worry, if you already know Restic, this will be a walk in the park.

Developer resources

Building from source

Needs Go 1.16, currently in beta.

Install the required dependencies and run make:

sudo apt install build-essential libgtk-3-dev libcairo2-dev libglib2.0-dev libglib2.0-dev-bin upx
make

Architecture

See architecture.md

Credits

Packages

No packages published

Languages