Torrentinim
Torrentinim is a self-hosted API-only, low memory footprint, torrent search engine and crawler.
Native support for Linux, Mac and Windows. You can find a release for your platform in our releases.
Community
Want to talk about Torrentinim or suggest features? We have an official Discord server.
Click to join our official Discord server
Goals
- API-only
- Native support for: Linux, Mac and Windows.
- Crawl multiple index sites for torrents and magnet links.
- [TODO] Easily integrates with both Sonarr and Radarr.
- Run without ceremony. You download a binary, run it, that's it. Really.
- Easy to understand source code. Special care is taken to keep code lean and understandable. No code golf here.
- High performance, extremely low memory footprint.
- RAM usage (avg.): 24MB
- Binary application size: 700KB
We work closely with other providers and search engines to be respectful of their hardware and minimize our impact to their systems. Want torrentinim to support your site? Please open a Github Issue in this repo.
Usage Guide
Torrentinim was designed to be painless to run. You download an executable, and run it. Done. It will start slurping up data from supported sources automatically.
The NUKE_MY_DATABASE
environment variable initializes the database. All subsequent runs should not
include NUKE_MY_DATABASE
or you will nuke your entire database.
$ NUKE_MY_DATABASE=true ./torrentinim
[system] Database nuke requested. Clearing all database tables and data.
[system] Initializing database
Torrentinim is running, bambino. http://localhost:50123
Subsequent runs, don't use the NUKE_MY_DATABASE
flag!
$ ./torrentinim
Torrentinim is running, bambino. http://localhost:50123
Environment variables:
TORRENTINIM_PORT
- what port the app will run on.ALLOW_ORIGINS
- CORS allowed origins.
Example:
TORRENTINIM_PORT=60000 ALLOW_ORIGINS="https://example.com" ./torrentinim
Use the search JSON endpoint to perform searches against all the scraped torrents you have saved locally.
http://localhost:50123/search?query=the other guys&page=1
Development
You need at least Nim 1.2.0
- Clone the project
asdf install
(to install the version of Nim in .tool-versions)make deps
make run
To compile release:
make build
Github Releases
- Update
torrentinim.nimble
package version with the tag version.
version = "0.4.0"
git tag v0.4.0
- Push up your tags
git push origin --tags
Supported websites
The following websites are fully supported.
- eztv
- 1337x
- nyaa
- rarbg
- torrentdownloads.me
- yts
These websites were supported but they have gone down.
- thepiratebay
Thank you's:
- @chhdamian for the Torrentinim logo
- @scroot
- @srozb
- @anacrolix
- The Nim discord server and the people who volunteer their time.