swampapp / swamp

Navigate your backed up data without drowning.
BSD 2-Clause "Simplified" License
56 stars 2 forks source link
backups bleve gnome gotk3 restic

Swamp

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

Quick start guide.

⚠️ 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.

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:

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