Skip to main content

Configuration

SeedSync stores its state and settings in /config inside the container. Mount this to persist settings across updates.

-v /path/to/config:/config

Web UI settings

Open the UI and fill out the Settings page:

  • Remote Server: SSH hostname or IP
  • Remote Port: Defaults to 22
  • Username: Remote SSH user
  • Password or SSH Key: Use key-based auth when possible
  • Remote Path: Path on the server to sync
  • Local Path: Must be /downloads inside the container
  • Server Script Path: Directory on the remote server where SeedSync copies its scanner utility. Defaults to /tmp. Some seedbox providers restrict writes to /tmp — if you see an SCP permission error on startup, change this to a directory you own (e.g. ~ or ~/.local).

Path Pairs

Path pairs let you sync from multiple remote directories independently. Each pair has its own remote path, local path, and settings.

To configure, go to Settings → Path Pairs and add entries. Each pair supports:

  • Name: Display label for the pair
  • Remote Path: Directory on the remote server
  • Local Path: Directory inside the container (must be under /downloads)
  • Enabled: Toggle the pair on or off
  • Auto Queue: Automatically queue new files found in this pair's remote path
  • Exclude Patterns: Glob patterns to skip (e.g. *.nfo, Sample/, *.txt)

When path pairs are active, the legacy Remote Path and Local Path fields in the main settings are disabled.

tip

Each path pair runs its own LFTP and scanner instance, so downloads and scanning happen independently per pair.

Exclude Patterns

Exclude patterns filter out files on the remote server before they appear in the dashboard or get auto-queued. Patterns use glob syntax:

  • *.nfo — skip all .nfo files
  • Sample/ — skip directories named Sample
  • *.txt — skip all .txt files

Configure exclude patterns per path pair, or in the main settings when using a single remote/local path.

Connections

  • Max Parallel Downloads: Number of items downloading simultaneously
  • Max Total Connections: Overall connection limit (0 = unlimited)
  • Max Connections Per File: Per-file connection count for single files and directories
  • Max Parallel Files: Number of files fetched in parallel within a directory download
  • Rename unfinished files: Downloading files get a .lftp extension
  • Bandwidth Limit: Cap download speed with values like 500K, 2M, or raw bytes/sec. Set to 0 or leave empty for unlimited.

Integrity Check

SeedSync can verify that downloaded files match their remote originals. There are two independent mechanisms:

Transfer verification (inline)

  • Verify transfers inline (recommended): When enabled, LFTP compares checksums during the download itself, catching corruption in real-time. Enabled by default.

Post-download validation

  • Enable post-download validation: Enables a separate validation step after download completes, comparing local and remote checksums via SSH. Disabled by default.
  • Auto-validate after download: Automatically queue files for validation when their download finishes. Requires post-download validation to be enabled.
  • Hash Algorithm: Algorithm used for both inline verification and post-download validation. Options: md5, sha1, sha256.

Once post-download validation is enabled, a Validate button appears next to downloaded files in the dashboard. Click it to manually verify a file at any time. Files show a status of Validated (checksum match) or Corrupt (mismatch).

note

Post-download validation is not available when Delete from remote after download is enabled, since the remote files are no longer available for comparison.

Logging

  • Verbose LFTP Logging: Enable detailed LFTP transfer logging for troubleshooting. Off by default.

AutoQueue

  • Enabled: Automatically queue new remote files
  • Patterns only: Only queue items that match patterns
  • Auto extract: Extract archives after download
  • Delete from remote after download: Automatically delete files from the remote server after a successful download. When used with auto-extract, extraction runs first.

Staging Directory

Use a fast staging disk (e.g. NVMe) for downloads and extraction, then automatically move completed files to your final downloads folder.

  • Use staging directory: Enable or disable the staging workflow
  • Staging Path: Path inside the container where files are temporarily downloaded and extracted

When enabled, the download flow becomes:

  1. LFTP downloads to the staging path (fast disk)
  2. Archives are extracted in staging (fast disk)
  3. Completed files are moved to /downloads (final location)
  4. Staging copy is deleted after size verification
tip

Mount your fast disk as a Docker volume and set the staging path in the UI. For example:

volumes:
- /mnt/nvme/staging:/staging
- /mnt/hdd/downloads:/downloads

Then set Staging Path to /staging in Settings.

Environment variables

VariableDefaultDescription
PUID1000User ID for file ownership
PGID1000Group ID for file ownership
UMASK(unset)File permission mask (e.g. 002 for 775/664, 000 for 777/666)

Volumes

PathDescription
/configSettings, state, and logs
/downloadsLocal download destination

Ports

PortDescription
8800Web UI

Advanced LFTP

These settings are collapsed by default under Advanced LFTP in the Settings page. They map directly to LFTP configuration options and are useful for tuning performance on fast or unreliable links.

  • Socket Buffer Size: Socket buffer size. Supports suffixes like 8M, 16M. Larger values improve throughput on fast links. (net:socket-buffer)
  • Min Chunk Size: Minimum chunk size for parallel file downloads. Supports suffixes like 100M. (pget:min-chunk-size)
  • Parallel Directories: Download directory contents in parallel rather than sequentially. (mirror:parallel-directories)
  • Network Timeout (s): Seconds to wait for network operations before timing out. (net:timeout)
  • Max Retries: Maximum number of retries on network errors. 0 for unlimited. (net:max-retries)
  • Reconnect Interval Base (s): Base delay in seconds before reconnecting after a failure. (net:reconnect-interval-base)
  • Reconnect Interval Multiplier: Multiplier applied to the reconnect delay after each consecutive failure. (net:reconnect-interval-multiplier)

Webhooks

SeedSync can send HTTP POST notifications when file events occur (download complete, extraction complete, etc.). Configure the webhook URL in Settings under Notifications.

Advanced config file

SeedSync reads settings from /config/settings.cfg. You can edit it directly if needed, but the UI is preferred for most setups.