Replace manual Threadfin lookup instructions with a signed approve
button in admin notification emails. Clicking it activates channels
in Threadfin via WebSocket API and sends a confirmation email to
the requester.
- Add /api/approve-channels endpoint with HMAC-signed tokens
- Add lib/threadfin.ts for WebSocket-based channel activation
- Add lib/token.ts for signed token creation/verification
- Add ws dependency for Threadfin WebSocket communication
- Update docker-compose with TOKEN_SECRET and THREADFIN_* env vars
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Resend required domain verification that wasn't set up. Switch to
self-hosted Mailcow (mx.jeffemmett.com) using nodemailer for SMTP,
matching the pattern used by other projects (cosmolocal, etc).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add Live Sports button linking to Jellyfin Live TV section
- Create /request-access page for users to request account access
- Add API endpoint that sends email notifications via Resend
- Add environment variables for RESEND_API_KEY and ADMIN_EMAIL
- Add .gitignore to exclude build artifacts and node_modules
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>