Coder Social home page Coder Social logo

ad-on-is / resticity Goto Github PK

View Code? Open in Web Editor NEW
59.0 3.0 1.0 17.63 MB

A beautiful cross-platform UI for restic backup.

License: GNU General Public License v3.0

Go 30.28% NSIS 9.07% TypeScript 8.92% Vue 46.18% JavaScript 3.93% Dockerfile 0.29% Shell 1.33%
backup docker linux macos restic windows

resticity's Introduction


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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.