A beautiful cross-platform UI for restic backup.
Find a file
Adis Durakovic c086cda38e fix: readme
2024-04-05 11:08:30 +02:00
.github/workflows chore: flatpak 2024-03-26 11:50:17 +01:00
build fix: assets 2024-03-07 15:10:08 +01:00
cmd/server feat: changes, add versioning 2024-03-15 10:58:24 +01:00
frontend fix: ui changes 2024-03-19 17:31:55 +01:00
images changes 2024-02-14 11:16:01 +01:00
internal feat: portable 2024-03-31 14:48:00 +02:00
packaging chore: flatpak 2024-03-26 11:32:45 +01:00
.gitignore chore: changes 2024-03-21 15:24:26 +01:00
.gitmodules chore: changes 2024-03-21 15:24:26 +01:00
app.go chore: changes 2024-03-16 12:10:46 +01:00
build.sh chore: workflow 2024-03-15 17:13:16 +01:00
Dockerfile fix: add openssh and rclone to docker image 2024-03-16 20:32:50 +01:00
go.mod feat: possibility to use sftp, rclone, etc. repos 2024-03-16 15:51:48 +01:00
go.sum feat: possibility to use sftp, rclone, etc. repos 2024-03-16 15:51:48 +01:00
LICENSE update license 2024-03-09 19:39:03 +01:00
main.go feat: changes, add versioning 2024-03-15 10:58:24 +01:00
README.md fix: readme 2024-04-05 11:08:30 +02:00
wails.json chore: workflow 2024-03-15 15:20:27 +01:00


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