SafeCopi helps you copy and back up files safely, especially when your network is unreliable.
If your transfer keeps failing because Wi-Fi drops, VPN disconnects, or a remote server goes offline for a moment, SafeCopi is made for that.
- Copies one or many sources (local folders and/or remote paths) to a destination.
- Works with local drives and remote destinations (
user@host:/path). - Automatically retries after errors or disconnects.
- Lets you pause and resume a running transfer.
- Shows progress, speed, and time remaining.
- Can check destination free space before starting.
- Can test SSH from the Add/Edit source dialog for remote sources, and Test SSH next to the destination when it is remote.
- Large backups that run for hours or days.
- Home server / NAS backups over shaky links.
- Remote copies where normal rsync commands are easy to mistype.
- Anyone who wants a safer, simpler workflow than running shell commands by hand.
- Use Add source… for each entry: pick Local folder or Remote (SSH / SFTP) (
user@host:/path/sftp://…); optional password per remote row is session-only (not saved). - Set destination (local path or
user@host:/path). - For a remote destination, use Test SSH under Browse… if you want to verify SSH (optional Dest. password).
- For remote sources, use Test SSH connection… in Add source… / Edit… if you want to verify before adding or saving the row.
- Run Dest. space to confirm capacity.
- Click Start sync.
SafeCopi will keep retrying if the connection drops, based on your retry settings.
- Python 3.10 or newer
rsyncandsshinstalled on your system- Python packages in
requirements.txt - Optional:
sshpassif you do password-based SSH without keys
git clone https://github.com/UnDadFeated/SafeCopi.git
cd SafeCopi
python -m venv .venv
.venv/bin/pip install -U pip
.venv/bin/pip install -r requirements.txtcd SafeCopi
.venv/bin/python -m safecopior:
./run-safecopi- If you use remote paths, SSH keys are recommended.
- Start sync checks destination free space, then runs rsync. Progress and size hints come from rsync’s own output (percent, bytes, and queue counters), not from a separate folder walk.
- You can run a dry run first to preview behavior before writing files.
- The app writes troubleshooting events to
debug.log. - Local source folders are copied as folders into the destination (for example, selecting
Sofie Backup/createsDestination/Sofie Backup/). - Change a listed source with Edit… or by double-clicking the row (same dialog as Add source…, with fields prefilled).
- Source list icons (remote rows only): hollow circle when no password is set; grey dot when a password is set but not yet tested; green check or red X after the last Test SSH connection… result from Add/Edit source for that row. Passwords are not saved—only paths and other options are stored in settings.
- Current release:
2.1.3 - Version source:
safecopi/__init__.py - Full history:
CHANGELOG.md - Version bumps for this repo are applied only when the maintainer requests a release (e.g. by saying push update); routine work does not change the tagged version by default.
Repository: github.com/UnDadFeated/SafeCopi