Skip to content

SeedSync - Fast seedbox file synchronization. Modernized fork with Docker-only deployment, Python 3.12

License

Notifications You must be signed in to change notification settings

nitrobass24/seedsync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

734 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SeedSync

Stars Docker Pulls Image Size License Documentation

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.

Features

  • 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!

Documentation

Full documentation is available at nitrobass24.github.io/seedsync

Quick Start (Docker)

Using Docker Compose (Recommended)

  1. 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
  1. Start the container:
docker compose up -d
  1. Access the web UI at http://localhost:8800

Using Docker Run

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:latest

SSH Key Auth: To use key-based authentication, mount your private key: -v ~/.ssh/id_rsa:/home/seedsync/.ssh/id_rsa:ro

Configuration

On first run, access the web UI and configure:

  1. Remote Server: Your seedbox SSH hostname/IP
  2. SSH Credentials: Username and password
  3. Remote Path: Directory on the seedbox to sync from
  4. Local Path: Maps to /downloads in the container

SSH Key Authentication

To use password-less SSH key authentication:

  1. Mount your private key into the container (see volume examples above)
  2. In the web UI Settings, enable "Use password-less key-based authentication"
  3. The password field can be left blank when key auth is enabled

Bandwidth Limiting

You can limit download speed in Settings under the Connections section. The Bandwidth Limit field accepts:

  • Numeric values in bytes/sec (e.g., 102400 for 100 KB/s)
  • Values with suffixes: K for KB/s, M for MB/s (e.g., 500K, 2M)
  • 0 or empty for unlimited

Building from Source

# Clone the repository
git clone https://github.com/nitrobass24/seedsync.git
cd seedsync

# Build and run
make build
make run

# View logs
make logs

Environment Variables

Variable Default Description
PUID 1000 User ID for file permissions
PGID 1000 Group ID for file permissions

Volumes

Path Description
/config Configuration and state files
/downloads Download destination directory
/home/seedsync/.ssh/id_rsa SSH private key (optional, for key-based auth)

Ports

Port Description
8800 Web UI

Troubleshooting

View Logs

docker logs seedsync

Permission Issues

Ensure your PUID and PGID match your host user:

id  # Shows your UID and GID

SSH Connection Issues

  • 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)

Remote Shell Not Found

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/bash

Report an Issue

Please report issues on the issues page. Include container logs: docker logs seedsync

License

SeedSync is distributed under Apache License Version 2.0. See LICENSE.txt for more information.


SeedSync Screenshot

About

SeedSync - Fast seedbox file synchronization. Modernized fork with Docker-only deployment, Python 3.12

Topics

Resources

License

Stars

Watchers

Forks

Packages