--- 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é) ```yaml 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 ```bash go install github.com/bitmagnet-io/bitmagnet/cmd/bitmagnet@latest # lancer avec un fichier bitmagnet.yml bitmagnet run --config=bitmagnet.yml ``` ## Configuration 1. **PostgreSQL** : obligatoire, schéma géré par migration automatique au premier démarrage. Prévoir ~20 Go pour quelques millions de torrents. 2. **DHT node** : configurer `dht.transport.address` pour écouter sur le port 6881. Bitmagnet se comporte comme un pair BitTorrent normal. 3. **Workers** : `workers.dht.crawler` contrôle le nombre de requêtes DHT parallèles. Augmenter pour crawler plus vite (risque de ban IP). 4. **Indexeur Torznab** : Bitmagnet expose un endpoint **Torznab** compatible Sonarr/Radarr via `http://bitmagnet:3334/torznab/...`. 5. **Search window** : configurer la fenêtre de crawl (24h par défaut) et la profondeur des torrents récupérés. 6. **Reverse proxy** : exposer HTTPS pour la WebUI et l'API, avec authentification ([[app-authelia]]). 7. **Métadonnées de fichiers** : `crawler.workers.metadata` pour 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