Files
2026-06-09 18:40:21 +02:00

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

  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

Pages Liées