SeedSync is a tool to sync files from a remote Linux server (like your seedbox) to your local machine. It uses LFTP to transfer files fast!
Note: This is a modernized fork of ipsingh06/seedsync with updated dependencies and Docker-only deployment.
- Built on top of LFTP, the fastest file transfer program
- Web UI - track and control your transfers from anywhere
- Automatically extract your files after sync
- Auto-Queue - only sync the files you want based on pattern matching
- Delete local and remote files easily
- Fully open source!
Full documentation is available at nitrobass24.github.io/seedsync
- Create a
docker-compose.yml:
services:
seedsync:
image: ghcr.io/nitrobass24/seedsync:latest
container_name: seedsync
ports:
- "8800:8800"
environment:
- PUID=1000 # Your user ID (run 'id' to find)
- PGID=1000 # Your group ID
volumes:
- ./config:/config
- /path/to/downloads:/downloads
# Uncomment below to use SSH key authentication
# - ~/.ssh/id_rsa:/home/seedsync/.ssh/id_rsa:ro
restart: unless-stopped- Start the container:
docker compose up -d- Access the web UI at http://localhost:8800
docker run -d \
--name seedsync \
-p 8800:8800 \
-e PUID=1000 \
-e PGID=1000 \
-v /path/to/config:/config \
-v /path/to/downloads:/downloads \
ghcr.io/nitrobass24/seedsync:latestSSH Key Auth: To use key-based authentication, mount your private key:
-v ~/.ssh/id_rsa:/home/seedsync/.ssh/id_rsa:ro
On first run, access the web UI and configure:
- Remote Server: Your seedbox SSH hostname/IP
- SSH Credentials: Username and password
- Remote Path: Directory on the seedbox to sync from
- Local Path: Maps to
/downloadsin the container
To use password-less SSH key authentication:
- Mount your private key into the container (see volume examples above)
- In the web UI Settings, enable "Use password-less key-based authentication"
- The password field can be left blank when key auth is enabled
You can limit download speed in Settings under the Connections section. The Bandwidth Limit field accepts:
- Numeric values in bytes/sec (e.g.,
102400for 100 KB/s) - Values with suffixes:
Kfor KB/s,Mfor MB/s (e.g.,500K,2M) 0or empty for unlimited
# Clone the repository
git clone https://github.com/nitrobass24/seedsync.git
cd seedsync
# Build and run
make build
make run
# View logs
make logs| Variable | Default | Description |
|---|---|---|
PUID |
1000 | User ID for file permissions |
PGID |
1000 | Group ID for file permissions |
| Path | Description |
|---|---|
/config |
Configuration and state files |
/downloads |
Download destination directory |
/home/seedsync/.ssh/id_rsa |
SSH private key (optional, for key-based auth) |
| Port | Description |
|---|---|
| 8800 | Web UI |
docker logs seedsyncEnsure your PUID and PGID match your host user:
id # Shows your UID and GID- Verify your seedbox allows SSH connections
- Check that the SSH port is correct (default: 22)
- Ensure your credentials are correct
- If using SSH key auth, ensure the key is mounted at
/home/seedsync/.ssh/id_rsa(read-only is fine)
If you see an error about /bin/bash not found, SeedSync will attempt to auto-detect the available shell on your remote server. Check the logs for the detected shell path. If detection fails, create a symlink on the remote server:
sudo ln -s /usr/bin/bash /bin/bashPlease report issues on the issues page.
Include container logs: docker logs seedsync
SeedSync is distributed under Apache License Version 2.0. See LICENSE.txt for more information.

