Cardigann
A server for adding extra indexers to Sonarr, SickRage and CouchPotato via Torznab and TorrentPotato proxies. Behind the scenes Cardigann logs in and runs searches and then transforms the results into a compatible format.
Cardigann is implemented in golang, which means it's simply a single binary to execute/install, no runtime. Windows, Linux and OSX will be supported, although it should run on any platform that golang supports.
Usage
Cardigann provides a cli tool for debugging and development:
cardigann query bithdtv t=tv-search "q=my show name" ep=1 season=2
Or you can run the proxy server:
cardigann server
Once the server is running, visit http://localhost:5060 and configure via the web interface.
You can set a password requirement by either passing the --passphrase
flag to the server command, or by setting global.passphrase
in the Configuration.
Installation
Cardigann is distributed on equinox.io in a variety of formats for macOS, Linux and Windows.
https://dl.equinox.io/cardigann/cardigann/stable
Follow the instructions on the above to install the cardigan binary, and then you can run the following to run the server in the foreground:
cardigann server
At this point you can visit the web interface on http://localhost:5060.
If you want to run this service non-interactively, you can install it as a service (supports windows services, macOS launchd, linux upstart, systemv and systemd):
cardigann service install
cardigann service start
Updating
Cardigann has an experimental upgrade-in-place feature using equinox.io:
cardigann update --channel=stable
If you like to live dangerously, you can update to the edge channel:
cardigann update --channel=edge
Configuration
Configuration is stored in a config.json
file. It's searched for in a few different locations, in order of priority:
$CWD/config.json
$CONFIG_DIR/config.json
Linux/BSD:
$HOME/.config/cardigann/config.json
/etc/xdg/cardigan/config.json
OSX:
$HOME/Library/Preferences/cardigann/config.json
/Library/Preferences/cardigann/config.json
/Library/Application Support/cardigann/config.json
Windows
%APPDATA%\cardigann\config.json
%LOCALAPPDATA%\cardigann\config.json
This configuration file will contain your tracker credentials in plain-text, so it's important to keep it secure.
Definitions
Definitions are yaml files (see definitions for their source) that define how to login and search on an indexer. You can either use the included definitions or write your own. Definitions are loaded from the following directories:
$CWD/definitions/
$CONFIG_DIR/definitions/
Linux/BSD:
$HOME/.config/cardigann/definitions/
/etc/xdg/cardigan/definitions/
OSX:
$HOME/Library/Preferences/cardigann/definitions/
/Library/Preferences/cardigann/definitions/
/Library/Application Support/cardigann/definitions/
Windows
%APPDATA%\cardigann\definitions\
%LOCALAPPDATA%\cardigann\definitions\
Using with a Proxy
Currently either a SOCKS5 proxy like Privoxy or Tor can be used:
SOCKS_PROXY=localhost:1080 cardigann server
Or, an http proxy works too:
HTTP_PROXY=localhost:8080 cardigann server
If you are running as a service, you will need to manually edit the service files to set the environment.
Supported Indexers
Cardigann simply provides a format for describing how to log into and scrape the search results of various forums and sites. It is not endorsed by the various sites, nor is it intended for piracy. You are using Cardigann at your own risk.
- Abnormal
- AlphaRatio
- AlphaReign
- Apollo (XANAX)
- AvistaZ
- BIT-HDTV
- BeyondHD
- BitMeTV
- Blu-bits
- CinemaZ
- DanishBits
- Demonoid
- EoT-Forum
- Ethor.net (Thor's Land)
- EZTV
- FileList
- Freshon
- FunFile
- HD-Torrents
- HDArea
- HDME
- Immortalseed
- IPTorrents
- KickAssTorrent
- MoreThanTV
- MySpleen
- NCore
- NetHD
- Norbits
- PreToMe
- PrivateHD
- Speed.CD
- Sceneaccess
- SceneTime
- Shareisland
- The New Retro
- The Shinning
- ThePirateBay (TPB)
- Torrent411 (T411)
- Torrent Sector Crew
- Torrent-Syndikat
- Torrentbytes
- TorrentDay
- TorrentHeaven
- Torrentleech
- ToTheGlory
- Transmithe.Net
- Tspate
- UHDBits
- WorldOfP2P
- Xthor
I'm happy to add new trackers, please either open a new issue, or a pull request with whatever details you have for the tracker.
How to compile (linux)
Install all requirements for the Go language, i.e.
sudo apt-get install golang
Verify that GO is installed
go version
Install npm. There are several ways to do this, i have installed the package from the repository and then update npm to latest version:
sudo npm install -g npm@latest
(If Needed) Installing npm from repository forced me to create a symbolic link between /usr/bin/nodejs /usr/bin/node because node is expected.
sudo ln -s /usr/bin/nodejs /usr/bin/node
Create PATH directory
mkdir ~/cardigann
Export this location for your GO to use
setenv GOPATH ~/cardigann
Export BIN location for your GO where all of the compiled binaries will be stored
setenv GOBIN ~/cardigann/bin
Download all dependencies required from cardigann
go get github.com/Sirupsen/logrus
go get github.com/cardigann/cardigann
go get gopkg.in/alecthomas/kingpin.v2
go get github.com/equinox-io/equinox
go get github.com/kardianos/service
go get -u github.com/mjibson/esc
go get -u github.com/c4milo/github-release
Install the web part:
cd ~/cardigann/src/github.com/cardigann/cardigann/web
npm install
Finally you should be ready to compile:
cd ~/cardigann/src/github.com/cardigann/cardigann
make
make build
make install
If you get esc: command not found after make build
than try to add GOBIN to your PATH, i.e.
PATH=$PATH:$GOBIN
Otherwise you can change the Makefile in "/cardigann/src/github.com/cardigann/cardigann" at line starting with esc -o and replace esc with its absolute path: **/cardigann/bin/esc**
Start the server!
cd ~/cardigann/bin
./cardigann server
Reporting bugs
Cardigann is new software, and relies on scraping indexers, so is inherently prone to breaking. We try and reply as quickly as possible, but please make sure before you report a bug that you've update to the latest version.
If the issue persists, file a bug.
Requests
- Start an issue on GitHub following one of these templates:
Questions? Wanna chat?
Credits
Inspired by Jackett, or at least born of frustration with it always crashing and requiring a mono runtime.