6.2 KiB
title: Bitmagnet created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, downloads, torrent, dht, crawler, indexer, go, postgres] confidence: medium contested: false sources: [https://selfh.st/apps/?tag=downloads, https://github.com/bitmagnet-io/bitmagnet]
Bitmagnet
Indexeur BitTorrent + DHT crawler écrit en Go. Crawl le réseau BitTorrent via DHT, extrait les métadonnées des torrents (nom, fichiers, taille) et expose une API GraphQL + WebUI de recherche. Un « Google du BitTorrent » self-hosted.
| Métadonnée | Valeur |
|---|---|
| Site web | https://bitmagnet.io/ |
| GitHub | https://github.com/bitmagnet-io/bitmagnet |
| License | MIT |
| Langage | Go |
| Étoiles GitHub | 234 ⭐ |
| Dernière MAJ | 2026-04 |
| Catégorie | cat-downloads |
Description
Bitmagnet est un indexeur BitTorrent passif écrit en Go : il se connecte au réseau DHT (Distributed Hash Table) de BitTorrent, écoute les announces des peers, télécharge les métadonnées des torrents (le .torrent minimaliste qui contient nom, taille, liste de fichiers), et les indexe dans une base PostgreSQL consultable via une API GraphQL et une WebUI intégrée.
Le concept est radical : pas de scraping de sites web (comme app-jackett), pas d'API tierce. Bitmagnet découvre lui-même les torrents partagés sur le réseau BitTorrent mondial. Cela le rapproche de l'ancien WhatCD / PassThePopcorn dans l'esprit, mais en mode 100 % passif (on indexe ce qui circule, sans tracker central). La WebUI permet de rechercher par nom, taille, type, langue ; l'API GraphQL permet d'intégrer Bitmagnet dans une stack app-sonarr/app-radarr pour ajouter automatiquement les torrents détectés.
Le projet est jeune (premier commit en 2023) mais écrit par des développeurs expérimentés du Go et du BitTorrent. Il utilise libtorrent-rasterbar via cgo (donc l'image Docker est lourde, ~300 Mo). La courbe d'apprentissage est technique (PostgreSQL requis, configuration via YAML, compréhension du DHT), mais c'est la solution pour qui veut comprendre ce qui circule sur BitTorrent sans dépendre d'un indexeur web.
Installation
Option 1 : Docker Compose (recommandé)
services:
bitmagnet:
image: ghcr.io/bitmagnet-io/bitmagnet:latest
container_name: bitmagnet
restart: unless-stopped
ports:
- "3333:3333" # WebUI
- "3334:3334" # API GraphQL
- "6881:6881" # DHT node
environment:
- BITMAGNET_DATABASE__URI=postgres://bitmagnet:bitmagnet@postgres:5432/bitmagnet?sslmode=disable
- BITMAGNET_DHT__TRANSPORT__ADDRESS=0.0.0.0:6881
depends_on:
- postgres
volumes:
- ./config:/etc/bitmagnet
postgres:
image: postgres:16-alpine
container_name: bitmagnet-db
restart: unless-stopped
environment:
- POSTGRES_DB=bitmagnet
- POSTGRES_USER=bitmagnet
- POSTGRES_PASSWORD=bitmagnet
volumes:
- ./postgres:/var/lib/postgresql/data
WebUI sur http://localhost:3333, GraphQL Playground sur http://localhost:3334.
Option 2 : Installation manuelle
go install github.com/bitmagnet-io/bitmagnet/cmd/bitmagnet@latest
# lancer avec un fichier bitmagnet.yml
bitmagnet run --config=bitmagnet.yml
Configuration
- PostgreSQL : obligatoire, schéma géré par migration automatique au premier démarrage. Prévoir ~20 Go pour quelques millions de torrents.
- DHT node : configurer
dht.transport.addresspour écouter sur le port 6881. Bitmagnet se comporte comme un pair BitTorrent normal. - Workers :
workers.dht.crawlercontrôle le nombre de requêtes DHT parallèles. Augmenter pour crawler plus vite (risque de ban IP). - Indexeur Torznab : Bitmagnet expose un endpoint Torznab compatible Sonarr/Radarr via
http://bitmagnet:3334/torznab/.... - Search window : configurer la fenêtre de crawl (24h par défaut) et la profondeur des torrents récupérés.
- Reverse proxy : exposer HTTPS pour la WebUI et l'API, avec authentification (app-authelia).
- Métadonnées de fichiers :
crawler.workers.metadatapour activer le téléchargement des listes de fichiers (impact disque).
Alternatives
Open Source
- app-jackett — Proxy d'indexeurs web (sites type 1337x, RARBG), complémentaire
- app-prowlarr — Agrégateur moderne d'indexeurs (web + usenet)
- app-qbittorrent — Client torrent qui ne fait pas office d'indexeur
- magneticow — Ancien projet similaire (Node.js, plus maintenu)
- BEP-44 (spec) — La base technique du DHT qu'utilise Bitmagnet
Propriétaires
- TorrentLeech / IPTorrents — Indexeurs privés payants avec règles strictes
- 1337x / RARBG (historique) — Sites web, fermés ou instables
- ThePirateBay — Indexeur historique, plus un site web qu'un crawler DHT
Sécurité
- Bitmagnet ne fait que découvrir des torrents : aucun contenu n'est téléchargé (sauf métadonnées)
- ⚠️ Le téléchargement de contenu protégé par le droit d'auteur est illégal dans la plupart des juridictions
- Protéger l'accès WebUI et GraphQL derrière un reverse proxy authentifié (app-authelia)
- Ne pas exposer l'endpoint Torznab publiquement (risque d'abus)
- Surveiller la taille de PostgreSQL : peut grossir très vite
- Le port 6881 DHT doit être ouvert ou derrière un NAT en mode « open »
- Mettre à jour régulièrement : projet jeune, surface CVE encore en évaluation
Ressources
- Site officiel : https://bitmagnet.io/
- Code source : https://github.com/bitmagnet-io/bitmagnet
- Documentation : https://bitmagnet.io/docs/
- GraphQL schema : https://bitmagnet.io/docs/graphql
- DHT protocol (BEP-5) : http://www.bittorrent.org/beps/bep_0005.html
Pages Liées
- cat-downloads — Vue d'ensemble de la catégorie Downloads
- app-jackett — Proxy d'indexeurs web (complémentaire)
- app-prowlarr — Agrégateur moderne d'indexeurs
- app-qbittorrent — Client torrent à brancher en aval
- app-sonarr / app-radarr — Clients finaux qui consomment l'API Torznab
- app-authelia — SSO pour protéger l'UI
- recettes-docker-compose — Templates Docker