Usage
Recommended Setup
The best way to use SeedSync is with hard links and a dedicated completion directory. This ensures each file is downloaded exactly once and is never re-downloaded — even after a container restart.
How it works
- Configure your torrent client (qBittorrent, ruTorrent, etc.) to hard link completed downloads into a dedicated directory. For example, if your client downloads to
/downloads/tv, have it hard link completed files to/downloads/complete. - Point SeedSync at the completion directory (
/downloads/complete). - Enable Auto-Queue and turn on "Delete from remote after download" in Settings.
Hard links don't consume extra disk space on the seedbox — they create another reference to the same data on disk. When SeedSync finishes syncing and deletes from /downloads/complete, only the hard link is removed. The original file stays intact for seeding.
Hard links only work when both directories are on the same filesystem. If your download and completion directories are on different mounts, use a bind mount to place them on the same filesystem, or use a copy-on-complete script instead (at the cost of extra disk space).
Setting up hard links
- qBittorrent: Use qbit-hardlinker to automatically hard link completed downloads to your SeedSync directory.
- ruTorrent: Use a post-completion script that creates hard links. Note that the Autotools "Move to" option performs a move, not a hard link — this would break seeding since the original file is relocated.
Example directory layout
/downloads/
├── tv/ ← Sonarr downloads here, torrents continue seeding
├── movies/ ← Radarr downloads here
└── complete/ ← Hard links go here, SeedSync watches this directory
This setup also solves the common problem of setting up SeedSync on a seedbox that already has many existing files. Since only newly completed downloads get hard-linked into the completion directory, SeedSync won't try to sync your entire library.
Dashboard
The Dashboard lists files and folders on the remote server and the local machine. Select a row to reveal its action buttons:
- Queue — start transferring the item from the seedbox.
- Stop — stop a queued or in-progress transfer.
- Extract — extract a downloaded archive.
- Validate — checksum-compare the local copy against the remote (needs the file on both sides).
- Delete Local — remove the item entirely from the local machine. The remote copy is untouched, so it can be re-queued later.
- Cleanup Local (folders only) — remove only local-only content inside a folder: files and subfolders that exist on the local machine but no longer exist on the seedbox (extraction leftovers, samples the remote reaped, stray files). Everything still mirrored on the remote is kept, and the folder itself is never removed.
- Delete Remote — remove the item from the seedbox.
- Multi-select files using checkboxes, then apply bulk actions (queue, stop, delete).
Cleanup Local vs Delete Local
| Delete Local | Cleanup Local | |
|---|---|---|
| Removes | the whole local folder | only content missing from the remote |
| Mirrored files | deleted | kept |
| Works on | files and folders | folders only |
Cleanup Local decides what is "local-only" by comparing against the seedbox listing, so it is deliberately unavailable when that comparison can't be trusted:
- the folder itself no longer exists on the remote (everything would count as local-only — use Delete Local instead), or
- the remote scan is failing (seedbox unreachable), or
- the folder simply has no local-only content.
In those cases the button is disabled. Deletions are double-click confirmed, like the delete buttons.
AutoQueue
AutoQueue can automatically queue new files discovered on the remote server.
- Patterns only lets you limit auto-queueing to specific matches.
- Auto extract automatically extracts archives after download completes.
- Delete from remote after download automatically removes files from the remote server after download, keeping your seedbox from filling up. When both auto-extract and delete-from-remote are enabled, extraction always runs before deletion.
- Patterns are managed from the AutoQueue page.
Staging Directory
If you have a fast disk (NVMe/SSD) with limited space and a larger slow disk (HDD) for long-term storage, enable the staging directory feature under Settings. Downloads and extraction happen on the fast disk, then completed files are automatically moved to your final downloads folder for the Arrs or other tools to pick up.
See Configuration for setup details.
Dark Mode
Use the theme toggle in the navbar to switch between light and dark mode. Your preference is saved in the browser.
Logs
The Logs page provides real-time streaming logs. Use it to diagnose connectivity or permission issues.
You can also query historical logs with search and level filters via the log query interface.
Remote Diagnostics
On first connection to a remote server, SeedSync automatically runs diagnostics and logs useful information about the server environment (shell, LFTP version, disk space, etc.). Check the Logs page after initial setup to review.
Path Pairs
If you sync from multiple remote directories, configure Path Pairs in Settings. Each pair runs its own LFTP and scanner instance. See Configuration for details.
Integrity Check
SeedSync can verify downloaded files match their remote originals using checksums.
- Inline verification runs automatically during transfer (enabled by default via LFTP's
xfer:verify). - Post-download validation is an optional second check that compares checksums via SSH after the file is on disk. Enable it in Settings under Integrity Check.
When post-download validation is enabled, a Validate button appears next to downloaded files. Click it to verify a file on demand. Files are marked Validated or Corrupt based on the result.
See Configuration for setup details.
Settings
All connection, path, and automation options live under Settings. Changes take effect after a restart.