Backup suite.
Find a file
Bjørn Bäuchle 305a556f96
All checks were successful
/ make-wheel (push) Successful in 8s
/ linting (push) Successful in 9s
/ make-doc (push) Successful in 4s
Merge pull request 'FIX actions/forgejo v2' (#31) from actions-update into main
Reviewed-on: #31
2026-02-16 14:09:49 +01:00
.forgejo/workflows FIX actions/forgejo v2 2026-02-16 14:09:13 +01:00
doc DOC: Documenting Context, Providers and Testers 2025-10-29 21:30:37 +01:00
docs ADD doc for safe.directory 2026-02-02 15:01:58 +01:00
sayod Merge pull request 'chg/25/strpath' (#29) from chg/25/strpath into main 2026-02-02 17:25:08 +01:00
.flake8 FIX most findings from flake8 2025-02-22 09:59:38 +01:00
.git_archival.txt NEW RENAME to sayod, make wheel 2024-10-08 21:57:27 +02:00
.gitattributes NEW RENAME to sayod, make wheel 2024-10-08 21:57:27 +02:00
.gitignore Ignore vim swap files 2025-12-01 18:23:08 +01:00
.pylintrc pylint: ignore modules 2026-01-10 23:16:12 +01:00
LICENSE LICENCE: Switch to EUPL-1.2 2025-12-28 07:24:11 +01:00
pyproject.toml fix d1bfce91c3: no 3.8 2025-12-28 09:51:34 +01:00
README.md Add documentation about config files 2025-10-28 17:14:10 +01:00

Sayod /ˈseɪəd/: SAve Your Own Data.

Say It: Backups are good!

sayod is a backup suite written in Python. It mostly uses git and rsync for its tasks and communicates via ssh. It may show notifications with libnotify and interactive prompts with PySide6.

Configuration of backup jobs is done via job resource files which are usually stored in $HOME/.config/sayod/, but can be placed anywhere.

Installation

$ pip install sayod

Usage

sayod's first entrypoint is sayod-backup. Lesser entrypoints are logreader and receiver which are supposed to be called via SSH on a different machine to handle deadtime and notification

# file $HOME/.config/sayod/mytask.rc
[source]
path = /home/myself

[target]
path = /var/my_backups/

[rsync]
deadtime = 7 # weekly backups
$ sayod-backup --config mytask copy
$ # same thing:
$ sayod-backup --config $HOME/.config/sayod/mytask.rc copy