Files
kindexr/deploy/kindexr.example.yaml
T
enki 1b7b70426c feat: Phase 0 bootstrap — kindexr boots, migrates, serves /health
- 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
2026-05-16 18:45:15 -07:00

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