A monitoring and analytics dashboard for Jellyfin. Keep an eye on active streams, user activity, library stats, and server health -- all in one place, with a glass-morphism UI inspired by Apple's Spatial Design.
Live session monitoring with real-time stream cards — cover art, playback status, codec details and progress at a glance.
Server activity heatmap, prime-time analysis, storage matrix and playback history — aggregated into a local SQLite database.
Server info, live network traffic, transcoding overview with active codecs, and database health.
- Live Stream Radar -- Real-time view of active sessions with playback progress, codec details, and transcoding status
- User Overview -- Online status, play history, and per-user activity tracking
- Library Analytics -- Media counts, genre distribution, storage breakdown, top played content, and recently added items
- Watch Analytics -- Heatmaps, prime-time analysis, and client ecosystem breakdown
- System Pulse -- Server info, network traffic, hardware acceleration, and database status
- Bilingual -- Full English and German interface
| Layer | Technology |
|---|---|
| Frontend | React 19, TypeScript, Vite |
| Styling | Tailwind CSS v4 |
| State | Zustand |
| i18n | i18next (EN / DE) |
| Proxy | Node.js |
| Deployment | Docker (multi-stage build) |
- Docker & Docker Compose
- A running Jellyfin server
- A Jellyfin API key
- Clone the repository:
git clone https://github.com/netz-sg/finscope.git
cd finscope- Copy the environment file:
cp .env.example .env- Start with Docker:
cd docker
docker compose up -d- Open
http://localhost:8080and enter your Jellyfin server URL and API key.
npm install
npm run devFinScope uses a Node.js proxy between the frontend and your Jellyfin server. This handles CORS and keeps your API key server-side -- no credentials are ever exposed to the browser.
Browser → Nginx (static frontend) → Node.js Proxy → Jellyfin Server
Have an idea or wish? Submit it here: finscope.featurebase.app
Found a bug? Please open an issue on GitHub Issues.
MIT