SeedSync is a GUI-configurable, LFTP-based file transfer and management program. With a LFTP backend, it can fetch files from a remote server (like your seedbox) at maximum throughput. Fully GUI-configurable means not having to muck around with scripts. SeedSync also allows you to extract archives and delete files on both the local machine and the remote server, all from the GUI!
SeedSync currently supports the following features:
- LFTP-backend for high-throughput, parallel transfers
- Web-based GUI accessible from any device
- View and control progress of file transfers from GUI
- Extract/decompress archive files
- Delete local or remote files
- Auto-Queue + Auto-Extract - automatically download and extract files as soon as they appear on your seedbox
- Only fetch the files you want with Auto-Queue pattern matching
- Fully open source!
Supported OS:
- Linux (debian package, docker image)
- Windows (docker image)
- MacOS (docker image)
Tested on:
- Ubuntu 14.04 and above
- Windows 10 Home
Dashboard on Desktop | Dashboard on Mobile | Change LFTP settings from GUI |
Installation options are:
- Ubuntu Deb Package (easiest method)
- Docker Image on Linux
- Docker Image on Windows
-
Download the deb package from the latest release
-
Install the deb package:
sudo dpkg -i <deb file>
-
During the first install, you will be prompted for a user name: This is the user under which the seedsync service will run. The transferred files will be owned by this user. It is recommended that you set this to your user (and NOT root).
-
After the installation is complete, verify that the application is running by going to http://localhost:8800 in your browser.
-
Go to the Settings page and fill out the required information. While password-based login is supported, key-based authentication is highly recommended! See the Key-Based Authentication Setup section for details.
-
Run the docker image with the following command:
docker run \ -p 8800:8800 \ -v <downloads directory>:/downloads \ -v <config directory>:/config \ ipsingh06/seedsync
where
<downloads directory>
refers to the location on host machine where downloaded files will be placed<config directory>
refers to the location on host machine where config files will be placed- both these directories must already exist
By default the docker image is run under the default user (uid=1000). To run as a different user, include the option
--user <uid>:<gid>
. -
Access application GUI by going to http://localhost:8800 in your browser.
-
Go to the Settings page and fill out the required information. Under the Local Directory setting, enter
/downloads
. -
While password-based login is supported, key-based authentication is highly recommended! See the Key-Based Authentication Setup section for details.
SeedSync supports Windows via the Docker container.
-
Install Docker on Windows.
-
Docker for Windows if you have Windows 10 Pro or above
-
Docker Toolbox if you have Windows 10 Home or below
-
-
Make sure you can successfully run the Hello World app in Docker.
-
Open the Docker terminal and run the SeedSync image with the following command:
docker run \ -p 8800:8800 \ -v <downloads directory>:/downloads \ -v <config directory>:/config \ ipsingh06/seedsync
where
<downloads directory>
refers to the location on host machine where downloaded files will be placed<config directory>
refers to the location on host machine where config files will be placed- both these directories must already exist
Note: the Windows host machine path is specified as
/c/Users/...
-
Access application GUI to verify SeedSync is running. Docker on Windows may not forward port to the local host. We need to find the IP address of the container.
-
Open a new Docker terminal and run the command:
docker-machine ip 192.168.100.17
-
Open <ip address>:8800 in your browser. In this example that would be http://192.168.100.17:8800
-
Verify that SeedSync dashboard loads.
-
-
Go to the Settings page and fill out the required information. Under the Local Directory setting, enter
/downloads
. -
While password-based login is supported, key-based authentication is highly recommended! See the Key-Based Authentication Setup section for details.
SeedSync's web-based GUI can be accessed at http://localhost:8800.
You may also access it from another device by replacing 'localhost' with the IP address or hostname of the machine where it is installed.
Password-based access to your remote server is highly unsecure. It is strongly recommended that you setup key-based authentication.
-
You will need to generate a public-private key pair. Here is a simple tutorial that walks you through this process.
Note: make sure the access is setup for the user under which SeedSync is running.
Note2: if you're using docker, also see the Installing SSH Keys into the Docker Container section.
-
Before continuing, verify the password-less access by SSH'ing into your remote server in a terminal:
ssh <remote user>@<remote server>
You should be able to log in to the remote server without being prompted for a password
-
Update the settings
- Access the web GUI and choose the Settings page from the menu.
- Replace your password in the "Server Password" field with anything else (it can't be empty).
- Select "Use password-less key-based authentication".
- Restart SeedSync
-
Generate a SSH private/public key pair. Here is a simple tutorial that walks you through this process.
-
Run this command in a new Docker terminal while the SeedSync container is running:
docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 28c87db489e1 ipsingh06/seedsync "/bin/sh -c '/app/..." 12 seconds ago Up 11 seconds 0.0.0.0:8800->8800/tcp pedantic_raman
Note down the container id for the image named ipsingh06/seedsync. It this example the container id is 28c87db489e1
-
Copy the private key 'id_rsa' that you generated earlier into the container:
docker cp id_rsa 28c87db489e1:/root/.ssh/
-
Set the correct permissions on the private key
docker exec 28c87db489e1 chmod 600 /root/.ssh/id_rsa
-
Verify that the container can SSH into remote server without password.
docker exec -it 28c87db489e1 ssh <username>@<address>
where <username> and <address> are the username and address of the remote server.
The Dashboard page shows all the files and directories on the remote server and the local machine. Here you can manually queue files to be transferred, extract archives and delete files.
AutoQueue queues all newly discovered files on the remote server. You can also restrict AutoQueue to pattern-based matches (see this option in the Settings page). When pattern restriction is enabled, the AutoQueue page is where you can add or remove patterns. Any files or directories on the remote server that match a pattern will be automatically queued for transfer.
Please report any issues on the issues page. Please post the logs as well. The logs are available at:
- Deb install:
<user home directory>/.seedsync/log/seedsync.log
- Docker: Run
docker logs <container id>
SeedSync can be restarted from the web GUI. If that fails, you can restart the service from command-line:
sudo service seedsync restart
Make sure your remote server address was entered correctly. If using password-based login, make sure the password is correct. Check the logs for details about the exact failure.
To maintain state across updates, you can store the settings in the host machine. Add the following option when starting the container.
-v <directory on host>:/config
where <directory on host> refers to the location on host machine where you wish to store the application state.
Contributions to SeedSync are welcome! Please take a look at the Developer Readme for instructions on environment setup and the build process.
SeedSync is distributed under Apache License Version 2.0. See License.txt for more information.