Skip to content

ad-on-is/resticity

Repository files navigation


Resticity
Resticity

A beautiful cross-platform UI for restic, built with Wails.

screenshot

Status

release aur container flatpak Version GitHub stars GitHub watchers GitHub forks

Caution

I'm still working on the Windows and macOS version. They're not ready yet.

Key Features

  • Easy to use
  • Light/Dark mode
  • Cross platform
    • Linux
    • Windows
    • MacOS
  • Docker image to run on self-hosted servers
  • Scheduled backups
  • Supports local and remote repositories
    • Local folder or mounted network drive
    • AWS
    • Backblaze
    • Azure
    • Google
  • System tray support
  • Desktop Notifications
    • when a schedule starts
    • when a schedule finishes sucessfully or with errors
  • Hooks
    • when a schedule starts
    • when a schedule finishes sucessfully or with errors

How To Use

Desktop

# Run in GUI mode
$ resticity

# Run in background mode (useful for autostart)
$ resticity --background

# Run with custom configuration path
$ resticity --config /path/to/config.json

Docker

Note

Make sure to set the hostname for the container since it gets changed after each restart.

# Run within Docker
# Add the paths that you want resticity to grant access to
$ docker run -d --name resticity -h myHostnameChangeMe -p 11278:11278 -v /path/to/config.json:/config.json -v /mnt:/mnt -v /home:/home ghcr.io/ad-on-is/resticity

Docker compose

version: "3"
services:
  reseticity:
  image: ghcr.io/ad-on-is/resticity
  container_name: resticity
  hostname: myHostnameChangeMe
  ports:
    - 11278:11278
  volumes:
    - /mnt:/mnt # Add the paths that you want resticity to grant access to
    - /home:/home
    - /path/to/config.json:/config.json # changeMe

Configuration

Resticity looks for a configuration file in the following order:

  1. Custom file location with the --config path/to/config.json flag
  2. RESTICITY_SETTINGS_FILE environment variable
  3. $XDG_CONFIG_HOME/resticity/config.json

Troubleshooting

Set RESTICITY_LOG_LEVEL=debug as environment variable for detailed debug messages (and log files).

Warning

This produces larger log files, so it is advised not to run it in production.

Installation

Linux

# Arch Linux
paru -S resticity

Windows

  • install restic and rclone on your system
  • Download the Resticity binary for Windows from the latest release

Build yourself

# Clone this repo
$ git clone https://github.com/ad-on-is/resticity

# Install wails
$ go install github.com/wailsapp/wails/v2/cmd/wails@latest

# cd into resticity
$ cd resticity

# Run as dev
$ ./build.sh dev

# Build desktop
$ ./build.sh desktop
# run
$ ./build/bin/resticity

TODOs

  • Packaging for different platforms

adisdurakovic.com  ·  GitHub @ad-on-is