No project description provided
Project description
edwh-restic-plugin
edwh-restic-plugin adds restic.* subcommands to edwh for repository setup, backup/restore flows, retention, and maintenance.
Table of contents
- Installation
- CLI usage
- Repository types
- Captain hooks scripts
- Commands
- Forget policy integration
- Wipe (destructive)
- License
Installation
(uv) pip install edwh-restic-plugin
Or add it through the plugin manager:
edwh plugin.add restic
Most users install it through edwh extras:
uvenv install edwh[plugins,omgeving]
# or
uvenv install edwh[restic]
CLI usage
Use edwh as the canonical CLI:
edwh restic.backup --connection-choice local
ew is a valid shorthand for the same commands:
ew restic.backup --connection-choice local
Repository types
The plugin supports multiple backends through provider implementations in src/edwh_restic_plugin/repositories:
localsftpb2swift(OpenStack Swift)s3r2oraclehetzner
If you omit connection selection, the plugin auto-detects based on configured *_PASSWORD variables and repository priority.
Captain hooks scripts
Backup/restore scripts are discovered in captain-hooks/.
Expected naming:
backup_<target>*restore_<target>*
Examples:
backup_files.shbackup_stream.shrestore_files.shrestore_stream.sh
During execution, the plugin prepares environment variables commonly used by scripts:
HOSTURIRESTIC_HOSTRESTIC_REPOSITORYSNAPSHOT(restore flows)MSG(backup message snapshot content)
Scripts can still call raw restic ... commands internally; the plugin prepares required env/auth context first.
Commands
Note: connection option names differ across commands in current implementation.
restic.configure
Set up/update repository env settings and run restic init --repository-version 2.
edwh restic.configure --connection-choice local
edwh restic.configure --connection-choice sftp --restichostname my-host
Options:
--connection-choice--restichostname
Aliases: restic.setup, restic.init
restic.backup
Run backup scripts for a target.
edwh restic.backup --connection-choice local --target files
edwh restic.backup --connection-choice sftp --target stream --message "nightly backup"
Options:
--target--connection-choice--message--verbose--without-forget(skip automatic forget-policy run)
Behavior:
- Executes matching
captain-hooks/backup_<target>*scripts. - Stores a message snapshot (tag
message) linked to created snapshots. - Automatically runs
restic.forgetpolicy after backup when policy exists, unless--without-forgetis set.
restic.restore
Run restore scripts for a target and snapshot.
edwh restic.restore --connection-choice local --target files --snapshot latest
edwh restic.restore --connection-choice sftp --target stream --snapshot <snapshot-id>
Options:
--connection-choice--snapshot(default:latest)--target--verbose
restic.snapshots
List snapshots (with parsed message-snapshot annotations).
edwh restic.snapshots --connection-choice local
edwh restic.snapshots --connection-choice local --tag files --tag stream -n 5
Options:
--connection-choice--tag(repeatable)-n/--n--verbose
Aliases: restic.list
restic.run
Open an interactive shell with restic env prepared, or run one restic subcommand.
edwh restic.run --connection-choice local
edwh restic.run --connection-choice local --command "snapshots --latest 3"
Options:
--connection-choice--command
restic.env
Print export ... lines for environment changes that the selected repository would apply.
edwh restic.env --connection-choice local
Options:
--connection-choice
restic.forget
Run restic forget with policy and prune options.
edwh restic.forget --connection s3
edwh restic.forget --connection s3 --dry
edwh restic.forget --connection s3 --policy "--keep-daily 7 --keep-weekly 5 --prune"
Options:
--connection--policy(raw policy CLI string)--dry
restic.unlock
Run restic unlock.
edwh restic.unlock --connection sftp
edwh restic.unlock --connection sftp --remove-all
Options:
--connection--remove-all
restic.du
Run restic stats helper.
edwh restic.du --connection local
edwh restic.du --connection local --mode raw-data
Options:
--connection--mode(restore-size,file-by-contents,blobs-per-file,raw-data)
Aliases: restic.stats, restic.stat
Forget policy integration
The plugin supports retention policy configuration in TOML files via ResticForgetPolicy.
Policy lookup order for automatic resolution:
- Connection short name (for example
s3) - Connection aliases
default
Configuration keys are read from sections like:
[restic.forget.default]
keep-daily = 7
keep-weekly = 5
prune = true
[restic.forget.s3]
keep-last = 10
prune = true
Common supported keys include:
keep-lastkeep-hourlykeep-dailykeep-weeklykeep-monthlykeep-yearlykeep-tag(list)keep-within*variantsprune
Integration with restic.backup:
- After backup, if a policy is found,
forgetis executed automatically. - Use
--without-forgeton backup to skip that post-backup retention step.
Wipe (destructive)
restic.wipe is available and is intentionally interactive.
edwh restic.wipe --connection s3
Behavior:
- The command asks for explicit confirmation:
Type YES to wipe repository <...>:
- Any response other than
YESaborts the operation. - S3-style backends share the generic wipe helper; other providers still implement their own config.
Use this only when you intentionally want to remove a repository's backup contents.
License
edwh-restic-plugin is distributed under the terms of the MIT license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file edwh_restic_plugin-0.15.0.tar.gz.
File metadata
- Download URL: edwh_restic_plugin-0.15.0.tar.gz
- Upload date:
- Size: 32.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"22.3","id":"zena","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
edc083bc23fe018d8c3e49126e8960ccf896c66419ff588de6cbe0e5b4314aae
|
|
| MD5 |
7ff0069a4c4ccf213327b822263e0fe7
|
|
| BLAKE2b-256 |
cb274f7420145d765ad72bd9c7dcec4744b22bc49d3af686576e584ae713a16a
|
File details
Details for the file edwh_restic_plugin-0.15.0-py3-none-any.whl.
File metadata
- Download URL: edwh_restic_plugin-0.15.0-py3-none-any.whl
- Upload date:
- Size: 31.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"22.3","id":"zena","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
79a47adb67b55059e77dd16b7566b3cefb4626e091874b28bcebeeec40edbb7c
|
|
| MD5 |
a108261b81145035dcb54905ab5d056e
|
|
| BLAKE2b-256 |
77fc6d327703b4a9197fda413022f5e1975fda6c408319a73ef72ab5be358125
|