Skip to main content

Sync Servers

This is a lightweight server sync app designed for home servers. It instantly syncs changed files from one server to other servers, or perodically cron syncs.

A use case is to sync files to multiple servers without setting up cloud costly. This project is a component of my homeservers project, which leverage this to sync up my cam uploaded files to other servers.

Inotify is leveraged to monitor files changes, asynclcron is to run cron tasks, and rsync is to sync files.

The inotify recursive watch class has been moved/contributed to asyncinotify.

setup dev env

# in vscode terminal:
python3 -m venv venv
## reopen vscode terminal, venv should show
pip install asyncinotify
pip install asynclcron

unit test

## run test
python3 -m unittest

rsyncd

sudo cp tests/rsyncd/rsyncd.conf /etc/
sudo rsync --daemon --no-detach

test rsync command

rsync -avh --no-p --mkpath --timeout=6 --contimeout=3 /storage/source/live rsync://127.0.0.1/live

packaging and publish

rm -rf dist
python3 -m build
python3 -m twine upload dist/*

run syncservers

# in root folder
python -m syncservers.app

Release files for syncservers 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for syncservers 1.0.1
File Size Uploaded
syncservers-1.0.1.tar.gz 13.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for syncservers 1.0.1
File Interpreter ABI Platform
syncservers-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 24.3 kB

Release files / syncservers-1.0.1.tar.gz

Download URL syncservers-1.0.1.tar.gz
Size 13.0 kB
Tags Source
SHA-256 checksum
How to use checksums
fcc8a836e722739b23c58c417b72952a1afb9fd55261c35b23bfa913f05622b1
BLAKE2b-256 checksum
How to use checksums
f26e2b1d3e0ef8e9a60d7dfdaf3325a1fd6592b48b209a7051f54f662fe4dbe8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.11.2

Release files / syncservers-1.0.1-py3-none-any.whl

Download URL syncservers-1.0.1-py3-none-any.whl
Size 11.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
66af8ea981cf8e6d12e6612d2c3a27a04f70df89151eb83becd3599ffa4219f8
BLAKE2b-256 checksum
How to use checksums
48e0f4fff126f9cbf8ca91d0539ef34b0bb77fb7e906a61ad5a60b3dca2ff97a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.11.2

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page