1b7b70426c
- config: koanf-based loading (defaults → YAML → KINDEXR_ env vars) - db: embedded SQLite migrations with BEGIN/END-aware statement splitter - server: chi router, GET /health returns JSON stats - cmd/kindexr: graceful SIGTERM shutdown - cmd/kindexr-cli: stub - deploy: systemd unit, example config, nginx snippet - all packages covered by race-clean tests
82 lines
2.6 KiB
YAML
82 lines
2.6 KiB
YAML
# kindexr config
|
|
# Copy to /etc/kindexr/config.yaml and edit as needed.
|
|
|
|
server:
|
|
listen: "127.0.0.1:9117" # bind addr; sit behind nginx for TLS
|
|
base_url: "https://kindexr.example.com" # used in Torznab feed links
|
|
|
|
database:
|
|
path: "/var/lib/kindexr/kindexr.db"
|
|
|
|
logging:
|
|
level: "info" # debug|info|warn|error
|
|
format: "json" # json|text
|
|
|
|
# Relays to subscribe to for NIP-35 events.
|
|
# If empty on first run, defaults to a sane starter set.
|
|
relays:
|
|
- "wss://relay.damus.io"
|
|
- "wss://nos.lol"
|
|
- "wss://relay.primal.net"
|
|
- "wss://nostr.mom"
|
|
- "wss://relay.snort.social"
|
|
- "wss://sovbit.host" # eric's own relay
|
|
# add more
|
|
|
|
# Initial backfill via NIP-77 negentropy. Set false to start from "now" only.
|
|
negentropy_bootstrap: true
|
|
backfill_days: 365 # don't go further back than this
|
|
|
|
# Curation
|
|
curation:
|
|
# If true, only ingest events from pubkeys in your follow graph (within follow_depth hops).
|
|
wot_only: false
|
|
follow_depth: 2
|
|
# Always allow these pubkeys regardless of WoT
|
|
allowlist:
|
|
- "npub1..."
|
|
# Always block these
|
|
blocklist:
|
|
- "npub1..."
|
|
# Auto-subscribe to these curation sets (kind 30004 naddr)
|
|
curation_sets:
|
|
- "naddr1..."
|
|
|
|
# TMDB enrichment (optional; without it, only events with imdb/tmdb i-tags are searchable by ID)
|
|
tmdb:
|
|
enabled: true
|
|
api_key: "${TMDB_API_KEY}"
|
|
cache_ttl: "168h"
|
|
|
|
# Health scraping (optional)
|
|
health:
|
|
enabled: false # off by default; rude to private trackers
|
|
method: "dht" # dht|tracker|both
|
|
refresh_interval: "30m"
|
|
|
|
# Writer side - publishing your own torrents to nostr
|
|
publisher:
|
|
enabled: false # off until you set it up explicitly
|
|
signer:
|
|
mode: "bunker" # local|ncryptsec|bunker
|
|
bunker_uri: "bunker://..." # for NIP-46
|
|
ncryptsec: "" # for ncryptsec mode
|
|
nsec: "" # for local mode (NOT RECOMMENDED)
|
|
outbox_relays:
|
|
- "wss://sovbit.host"
|
|
- "wss://relay.damus.io"
|
|
- "wss://nos.lol"
|
|
# Where to watch for completed downloads
|
|
client:
|
|
type: "qbittorrent" # qbittorrent|transmission|deluge|watch_dir
|
|
qbittorrent:
|
|
url: "http://127.0.0.1:8080"
|
|
username: "admin"
|
|
password: "${QBIT_PASSWORD}"
|
|
# Only publish torrents tagged with this category (so you don't accidentally publish everything)
|
|
category: "publish-nostr"
|
|
watch_dir:
|
|
path: "/var/lib/kindexr/watch"
|
|
# Auto-enrich title parsing -> TMDB lookup before publishing
|
|
enrich_before_publish: true
|