Zero-Knowledge Auth
Your password never leaves your device. SRP-style challenge/response with PBKDF2 client-side; the server only ever sees a verifier.
High-performance, security-first tracker with Zero-Knowledge Authentication, Two-Factor Auth, and Panic Mode encryption.
Trackarr is designed for communities that value privacy and security above all else. Unlike traditional trackers that store passwords and personal data in plaintext or with reversible encryption, Trackarr uses cryptographic proofs that make it mathematically impossible to recover user credentials — even for administrators.
This documentation covers the Dim145/opentracker fork, which adds two-factor auth, user-managed invitations, the moderation pipeline, bonus events, the seed-bonus economy (per-user points + shop), the UDP tracker frontend (BEP 15 alongside HTTP), the three-state registration mode, pluggable media metadata (TMDb / IGDB / Open Library), multi-channel notifications (SMTP, Telegram, Discord, Web Push, …), a community bounty board, a follow / subscribe graph with upload notifications, private favorites, a cross-seed surface on every torrent, anti-cheat detection feeding a manual triage queue, and a hardened announce hot path on top of the original feature set.
| Layer | Technology | Purpose |
|---|---|---|
| Frontend | Nuxt 4, Vue 3, Tailwind CSS | SSR (or fully static SPA), Composition |
| Backend | Nitro Server Engine | API routes, middleware |
| Tracker | Go (custom) | HTTP announces, peer store, bonus mul. |
| Database | PostgreSQL 16 + Drizzle ORM | Data persistence, full-text search |
| Cache | Redis 7 | Peer lists, sessions, rate limiting |
| Crypto | Web Crypto API, scrypt, AES-256-GCM | ZKE auth, panic encryption |
| 2FA | otplib + @simplewebauthn | TOTP + WebAuthn passkeys |
# Clone the repository
git clone https://github.com/Dim145/opentracker.git
cd opentracker
cp .env.example .env
# Generate the secrets that have no usable defaults
echo "IP_HASH_SECRET=$(openssl rand -hex 32)" >> .env
echo "NUXT_SESSION_SECRET=$(openssl rand -hex 32)" >> .env
# Bring up the data layer (Postgres + Redis)
docker compose up -d
# Start the app processes on the host (web + api + tracker)
pnpm install
pnpm dev
# Open http://localhost:3000 and register the first adminFor a production setup (Caddy + HTTPS + the three app containers together), see the Getting Started guide.
See the Getting Started guide for a deeper walk-through, or jump straight into the Configuration reference.