bac30ecfdf
- NetworkConfig/ProxyConfig in config.rs: mode=direct|tor|i2p|socks5 with socks5_addr() helper that maps tor→9050, i2p→4446, socks5→url - build_http_client() routes reqwest through SOCKS5 when configured - build_nostr_opts() routes nostr-sdk WebSocket connections through SOCKS5 using Connection::new().proxy(addr) - Shared http_client passed to Enricher and BlossomClient so proxy applies to TMDB and Blossom blob fetches as well - nostr_opts passed to Reader, WotBuilder, ProfileFetcher - Dashboard: network status card showing proxy mode, listen address, IPv4/IPv6; relay section now shows X connected / Y configured - Publishers: rename vouch form to "Override publisher trust", add clear note that this is local-only (not broadcast to Nostr), explain WoT comes from NIP-02 kind 3; rename column headers for clarity - Example and dev configs updated with network.proxy section
88 lines
3.1 KiB
YAML
88 lines
3.1 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 category label
|