#restic #loader #configuration #api

app restic_ez

This crate provides a simple configuration loader and API around restic

6 releases

0.3.0 Nov 18, 2021
0.1.5 Sep 9, 2021

#549 in Authentication

BSD-2-Clause OR MIT

35KB
724 lines

License BSD-2-Clause License MIT AppVeyor CI docs.rs crates.io Download numbers dependency status

restic-ez

Welcome to restic-ez 🎉

restic-ez provides a simple configuration loader and CLI-API around restic.

Configuration example

[restic]
dirs = "/Development"
repo = "s3:https://<url to s3 bucket>"
safe_restore = true

[restic.flags]
backup = [
    "--exclude-caches",
    "--iexclude", "/Development/Code/Swift/*/.swiftpm",
    "--iexclude", "/Development/Code/Swift/*/.build"
]

[credentials.restic]
command = "set -euo pipefail; pass <path to password file> | sed -n 1p"

[credentials.s3]
id = { value = "<insert your s3 key id here>" }
secret = { command = "set -euo pipefail; pass <path to password file> | sed -n 2p" }

Man page

Usage: restic-ez [verb]

Possible verbs are:
    create      Creates a new archive
    list        Lists the existing archives
    restore     Restores the latest archiv tagged with \"backup\"
    shell       Opens a shell session configured for easy manual restic invocation
    check       Checks the repository for consistency
    prune       Removes all unused chunks from the repository
    break-lock  Breaks a stale lock
    help        Displays this help

Specify the configuration using environment variables:
    RESTIC_EZ_CONFIG_TOML  Specifies the raw configuration toml string
    RESTIC_EZ_CONFIG       Specifies a custom path to a configuration file

Per default, restic-ez looks for the following config files:
    ./restic-ez
    ./restic-ez.conf
    ./restic-ez.toml
    ./.restic-ez
    ./.restic-ez.conf
    ./.restic-ez.toml

Dependencies

~3.5–5MB
~107K SLoC