feat: improve readme, prepare to publish repo
This commit is contained in:
@@ -0,0 +1,61 @@
|
|||||||
|
# Lohup
|
||||||
|
|
||||||
|
(_loh-up - backup for lohs[1]_)
|
||||||
|
|
||||||
|
Lohup - backups done dummy.
|
||||||
|
|
||||||
|
## Development status
|
||||||
|
|
||||||
|
Early alpha. Works on my machines.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
[Restic](https://restic.net) and [uv](https://docs.astral.sh/uv/) for Python required. Or just Python 3.13 and restic.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
apt update && apt install -y restic
|
||||||
|
uv tool install git+https://github.com/kam1sh/lohup
|
||||||
|
```
|
||||||
|
|
||||||
|
## 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 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 "looser"
|
||||||
|
|||||||
@@ -2,5 +2,3 @@
|
|||||||
from lohup.cli import cli
|
from lohup.cli import cli
|
||||||
|
|
||||||
cli()
|
cli()
|
||||||
|
|
||||||
|
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
|
|
||||||
a = Analysis(
|
a = Analysis(
|
||||||
['main.py'],
|
['lohup-cli.py'],
|
||||||
pathex=[],
|
pathex=[],
|
||||||
binaries=[],
|
binaries=[],
|
||||||
datas=[],
|
datas=[],
|
||||||
@@ -22,7 +22,7 @@ exe = EXE(
|
|||||||
a.binaries,
|
a.binaries,
|
||||||
a.datas,
|
a.datas,
|
||||||
[],
|
[],
|
||||||
name='main',
|
name='lohup',
|
||||||
debug=False,
|
debug=False,
|
||||||
bootloader_ignore_signals=False,
|
bootloader_ignore_signals=False,
|
||||||
strip=False,
|
strip=False,
|
||||||
+17
-1
@@ -1,14 +1,30 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "lohup"
|
name = "lohup"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
description = "Add your description here"
|
description = "Backups done dummy"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
maintainers = [
|
||||||
|
{name = "Igor Ovsyannikov"}
|
||||||
|
]
|
||||||
|
license = "MIT"
|
||||||
|
keywords = ["restic", "backups"]
|
||||||
|
classifiers = [
|
||||||
|
"Development Status :: 3 - Alpha",
|
||||||
|
"Environment :: Console",
|
||||||
|
"Operating System :: POSIX :: Linux",
|
||||||
|
"Intended Audience :: System Administrators",
|
||||||
|
"Topic :: System :: Archiving :: Backup",
|
||||||
|
"Topic :: Utilities",
|
||||||
|
]
|
||||||
requires-python = ">=3.13"
|
requires-python = ">=3.13"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"click>=8.2.1",
|
"click>=8.2.1",
|
||||||
"humanize>=4.13.0",
|
"humanize>=4.13.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[project.urls]
|
||||||
|
Repository = "https://github.com/kam1sh/lohup"
|
||||||
|
|
||||||
[dependency-groups]
|
[dependency-groups]
|
||||||
dev = [
|
dev = [
|
||||||
"pyinstaller>=6.15.0",
|
"pyinstaller>=6.15.0",
|
||||||
|
|||||||
Reference in New Issue
Block a user