Getting Started
Introduction
Cross-seeding is the practice of downloading a torrent from one tracker and using that data to seed across other trackers. This results in minimal downloads and instant seeding, making it a great way to build ratio and contribute to the community.
This software is designed primarily for private trackers. If you plan on cross-seeding on public trackers, please see our FAQ for more details.
Setting Up the Daemon
The most efficient way to use cross-seed
is to run it in daemon mode,
which continuously monitors for new downloads and cross-seeds them
automatically. Here's how to get everything up and running.
1. Install cross-seed
cross-seed
AND YOUR TORRENT CLIENT MUST BE ON THE SAME OS TO USE LINKING
(DOCKER ALWAYS RUNS ON LINUX, EVEN ON WINDOWS)
You can still use cross-seed
without linking, but the features will be limited.
This will be covered in depth later in this guide.
You can install cross-seed
using one of the following methods:
With npm
(recommended if you're not using Docker)
You'll need Node.js 20 or greater.
npm install -g cross-seed
cross-seed --version
With Unraid
For Unraid installation, see the Unraid guide.
With Docker
docker run ghcr.io/cross-seed/cross-seed:6 --version
Here you go:
version: "2.1"
services:
cross-seed:
image: ghcr.io/cross-seed/cross-seed:6
container_name: cross-seed
user: 1000:1000 # optional but recommended
ports:
- "2468:2468"
volumes:
- /path/to/config/folder:/config
- # You will need at least one extra volume for your media drive if using https://www.cross-seed.org/docs/tutorials/linking
command: daemon
restart: unless-stopped
- Run the container once which will generate the config file.
- Then skip to Step 3: Edit the Config File.
Otherwise, continue with the following steps.
2. Create a Config File
You'll need to generate a configuration file before running the daemon. Both Docker and non-Docker users will use the same method for this.
For non-Docker users:
Run the following command to generate a config file:
cross-seed gen-config
For Docker users:
Docker users can generate the config file by running the following command:
docker run \
-v /path/to/config:/config \
ghcr.io/cross-seed/cross-seed gen-config
3. Edit the Config File
The configuration file uses JavaScript syntax, which means:
- Array/multi options must be enclosed in ['brac', 'kets'].
- Strings must be enclosed in "quotation" marks.
- Array elements and options must be separated by commas.
- Windows users will need to use
\\
for paths.
Once you've created your config file, you'll need to fill in the necessary fields to connect to your torrent client and indexer. You will likely need to configure the following:
These settings are just the recommended starting point for cross-seed
.
The Next Steps
section below will guide you on how to
configure cross-seed
to find all possible matches.
torznab
: URLs of your Torznab indexers (from Prowlarr or Jackett).Connection to your torrent client
: URL with login info of your torrent clientlinkDirs
: Directories where your data is linked to.
Here's an example of what your config.js
might look like:
module.exports = {
torznab: ["http://localhost:9696/1/api?apikey=123456"],
qbittorrentUrl: "http://username:password@localhost:8080",
linkDirs: ["/data/torrents/SomeLinkDirName"],
... several other settings you can read later ...
};
4. Run the Daemon
The settings from the config template assumes you will be setting up linking. You will need to follow the linking tutorial for the config validation to pass.
If you cannot use linking, the errors will guide you on what to change in the
config. You also may want to use
duplicateCategories: true
if you are using
sonarr or radarr.
Once you've set up your configuration, you're ready to run the daemon. Start the daemon with this command:
cross-seed daemon
Or, if you are using Docker, make sure to expose the paths cross-seed needs to access:
docker run -v /path/to/config:/config ghcr.io/cross-seed/cross-seed daemon
After a few moments, you should see cross-seed
automatically starting to
search for things in your catalog. It will also automatically scan your
trackers' RSS feeds for new releases you can cross-seed.
By default, RSS scans will happen every 30 minutes (determined by the
rssCadence
option).
Bulk searches of 400 torrents in your catalog (determined by
searchLimit
,
excludeRecentSearch
, and
excludeOlder
) will run daily (determined by
searchCadence
).
For now, you can leave the terminal open to keep the daemon running.
Troubleshooting
If any configuration issues arise, cross-seed
will provide feedback in the
terminal, which helps guide you through fixing them. To see more detailed
output, which may help you debug your errors, you can use the --verbose
flag:
cross-seed daemon --verbose
Regardless of the --verbose
flag, cross-seed
will also always log the
verbose output to <your cross-seed config dir>/logs/verbose.current.log
.
Some common errors are also listed in the FAQ and Troubleshooting page.
Next Steps
Once you have the daemon up and running, here are a few additional features to
get the most out of cross-seed
:
- Managing the daemon with Docker or systemd for long-term use.
- Setting up partial matches to increase your seed size even more (at the cost of downloading a few extra NFO files).
- Setting up ID-based searching for better match rates by configuring Sonarr and Radarr
- Listening for announces to join new swarms as an uploader.
- Notifying cross-seed of completed downloads to search for new things more quickly.
- Data based matching to match torrents based on their data.
- Explore cross-seed's configuration options to customize
cross-seed
's behavior to your liking.