c6b9b676a4
Deluge uses a JSON-RPC HTTP API exposed by the Web UI plugin (port 8112), not the daemon binary protocol (port 58846). The integration logs in, fetches completed torrents, filters by configured labels, and enqueues them the same way as the qBittorrent poller. - DelugeConfig in config.rs (enabled, url, password, poll_interval_secs, labels) - src/publisher/deluge.rs: DelugeClient with login/_session_id cookie handling, core.get_torrents_status, label + is_finished filtering - Watcher: deluge_poll_loop alongside qb_poll_loop; each only starts if its respective client is configured/enabled - Example config updated with deluge section and Web UI port note
97 lines
3.4 KiB
YAML
97 lines
3.4 KiB
YAML
# kindexr config — copy to /etc/kindexr/config.yaml and edit as needed.
|
|
|
|
server:
|
|
listen: "127.0.0.1:9117"
|
|
base_url: "https://kindexr.example.com" # used in Torznab feed magnet links
|
|
|
|
database:
|
|
path: "/var/lib/kindexr/kindexr.db"
|
|
|
|
logging:
|
|
level: "info" # debug | info | warn | error
|
|
format: "json" # json | text
|
|
|
|
# Nostr relays to subscribe to for NIP-35 (kind 2003) events.
|
|
relays:
|
|
- "wss://relay.damus.io"
|
|
- "wss://nos.lol"
|
|
- "wss://relay.primal.net"
|
|
- "wss://nostr.mom"
|
|
- "wss://relay.snort.social"
|
|
- "wss://sovbit.host"
|
|
|
|
backfill_days: 365 # how far back to go on first connect per relay
|
|
negentropy_bootstrap: true
|
|
|
|
# Curation / trust settings
|
|
curation:
|
|
wot_only: false # if true, drop events from pubkeys outside your WoT graph
|
|
follow_depth: 2
|
|
operator_pubkey: "" # your npub or hex pubkey — defines WoT root
|
|
allowlist: []
|
|
blocklist: []
|
|
curation_sets: [] # kind 30004 naddr URIs to subscribe to
|
|
exclude_categories: [6000, 6010, 6020, 6030, 6040, 6050, 6060, 6070, 6080, 6090]
|
|
auto_block_threshold: 5 # auto-block a publisher after this many reports
|
|
|
|
# TMDB enrichment — title → TMDB ID lookup (optional)
|
|
tmdb:
|
|
enabled: true
|
|
api_key: "${TMDB_API_KEY}" # or set KINDEXR_TMDB.API_KEY env var
|
|
cache_ttl: "168h"
|
|
|
|
# Health scraping (off by default — can be rude to private trackers)
|
|
health:
|
|
enabled: false
|
|
method: "dht" # dht | tracker | both
|
|
refresh_interval: "30m"
|
|
|
|
# Blossom binary bridge (BUD-01)
|
|
# When enabled, kindexr will:
|
|
# - Cache .torrent files linked via `url` tags in incoming NIP-35 events
|
|
# - Upload .torrent files to this server before publishing your own NIP-35 events
|
|
# - Serve cached files at /torrent/<info_hash>.torrent for *arr apps
|
|
# The server can be self-hosted (e.g. https://github.com/hzrd149/blossom-server).
|
|
blossom:
|
|
enabled: false
|
|
server: "https://blossom.example.com"
|
|
|
|
# Networking — proxy configuration for all outbound connections
|
|
# (Nostr relay WebSockets, TMDB API, Blossom blob fetches)
|
|
# mode: direct | tor | i2p | socks5
|
|
# direct — no proxy (default)
|
|
# tor — SOCKS5 via 127.0.0.1:9050 (Tor daemon must be running)
|
|
# i2p — SOCKS5 via 127.0.0.1:4446 (I2P SAM/SOCKS proxy must be running)
|
|
# socks5 — explicit SOCKS5 proxy; set url to socks5://host:port
|
|
network:
|
|
proxy:
|
|
mode: "direct"
|
|
url: "" # only used when mode=socks5, e.g. socks5://127.0.0.1:1080
|
|
|
|
# Publisher — publish your own torrents as NIP-35 events
|
|
publisher:
|
|
enabled: false
|
|
outbox: # relays to publish your events to
|
|
- "wss://sovbit.host"
|
|
- "wss://relay.damus.io"
|
|
publish_delay_secs: 1800 # 30 min hold before publishing
|
|
identity:
|
|
nsec: "" # local signing key (bech32 nsec or hex); run: kindexr-cli identity init
|
|
bunker_url: "" # NIP-46 bunker URI (takes precedence over nsec when set)
|
|
qbittorrent:
|
|
url: "http://127.0.0.1:8080"
|
|
username: "admin"
|
|
password: "${QBIT_PASSWORD}"
|
|
poll_interval_secs: 60
|
|
categories:
|
|
- "publish-nostr" # only publish torrents with this qBittorrent category
|
|
|
|
# Deluge Web UI integration (enable the Web UI plugin in Deluge preferences)
|
|
deluge:
|
|
enabled: false
|
|
url: "http://127.0.0.1:8112" # Web UI port (not the daemon port 58846)
|
|
password: "${DELUGE_WEB_PASSWORD}"
|
|
poll_interval_secs: 60
|
|
labels:
|
|
- "publish-nostr" # Deluge Label plugin label to watch
|