A GNOME application to index, search, stream, download and export files in Restic repositories.
⚠️ Currently alpha quality:
There's a more comprehensive overview of what's missing for those technically inclined or willing to contribute in the release plan document.
Swamp doesn't write to your Restic repository. It works just fine with read-only repositories.
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.
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)
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:
And much more. See the for some additional examples.
Capable of indexing 1000+ files per second in a regular laptop. Polls for new Restic snapshots regularly to index them automatically.
Tag you backed up files to quickly locate them later.
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).
Swamp can stream your video or audio files or download/export any file and version to the desired location.
Swamp provides quick access to the most important features via keyboard shortcuts.
See keyboard shortcuts documentation.
Swamp includes a command line interface (swp
) to query the repositories after being indexed.
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.
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
See architecture.md