A Docker-based, cross-platform backup sync solution. Synchronize local filesystem contents with a remote backup server over SSH, as the first step toward a complete, multi-stage backup strategy.
- Copy
.env.exampleto.envin theclient/directory and edit to match your environment. - Run the client for the first time (generates SSH keys):
cd client docker compose up - Copy the generated public key from
client/sshkeys/public/ssh_key.pubto your backup server's authorized_keys for the transfer user. - Start the backup server (on your server machine):
cd server docker compose up -d - Run the client again to sync your data:
cd client docker compose up
For detailed information, see:
- Rsync-Backup.md — Project overview and intent
- Backup-overview.md — The full multi-stage backup strategy this is part of
- Code-review.md — Known issues and future improvements
- tests/integration/README.md — How to run the integration test suite
- Cross-platform: Works on Windows, Linux, macOS via Docker
- SSH-based: Secure key-based authentication (no passwords)
- Automatic key generation: First run generates SSH keypair and server template
- Push/pull modes: Upload to server (push) or download from server (pull)
- Deletion sync:
rsync --deletepropagates removals to the backup destination - Persistent host keys: Known hosts are saved between runs to detect MITM attacks
┌─────────────────────────────┐
│ Client (Windows/Linux/macOS) │
│ ┌─────────────────────┐ │
│ │ /upload directory │ │
│ │ (files to backup) │ │
│ └──────────┬──────────┘ │
│ │ │
│ docker container │
│ (rsync + ssh) │
│ │ │
└─────────────┼───────────────┘
│ SSH key-based auth
│ rsync over SSH
▼
┌─────────────────────────────┐
│ Server (Backup destination) │
│ ┌─────────────────────┐ │
│ │ /data directory │ │
│ │ (live mirror) │ │
│ └─────────────────────┘ │
│ │
│ docker container │
│ (openssh-server + rsync) │
└─────────────────────────────┘
This is stage 1 of the backup pipeline. Stages 2–4 (snapshots, archival, verification) are handled by separate tools.
Licensed under the MIT License.
Bug reports and pull requests are welcome. Please see Code-review.md for known issues and planned improvements.