Files
lohup/README.md
T

70 lines
1.6 KiB
Markdown

# Lohup
(_loh-up - backup for lohs[1]_)
Lohup - backups done silly.
## Development status
Early alpha. Works on my machines.
## Installation
Python 3.14 is required. You can get it using [uv](https://github.com/astral-sh/uv).
Also you will need one of backup backends.
[Restic](https://github.com/restic/restic) and [Rustic](https://github.com/rustic-rs/rustic) are supported.
```bash
apt update && apt install -y restic
# or download rustic binary from https://github.com/rustic-rs/rustic/releases/tag/v0.11.3
# get using uv
uv tool install git+https://github.com/kam1sh/lohup
# or by pip
pip install
```
## Usage
Example configuration see in [corresponding directory](examples/complete.toml)
CLI examples:
```bash
lohup --config config.toml restic --repo cloud -- init
# if config=lohup.toml then option can be omitted
lohup backup-all
lohup snapshots --repo cloud
```
## Core features
* Configuration in TOML
* Restic/Rustic as a backup driver
* Backup hooks, such as create/remove btrfs filesystem snapshot
* Environment variables
### Features in TODO
* LVM hooks
* Better error handling and printing
* Verbose/debug messages
* Metrics and OpenTelemetry support
* Binary releases, win+linux amd64 along with Python wheel
* Include files in profiles with `paths-from`
## Development
```bash
git clone git@github.com:kam1sh/lohup lohup-dev && cd lohup-dev
# install dependencies
uv sync --group dev
# run tests
uv run pytest --tb=short
# building binaries to dist directory
uv run pyinstaller -F lohup-cli.spec
```
[1] in my native language loh (лох) means "dummy" or "loser". So, yeah, backups are for losers.