70 lines
1.6 KiB
Markdown
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.
|