apps.header.allAppsCount
finscope
apps.detail.types.app from joly0's Repository
apps.detail.sections.overview
Readme
View on GitHub
FinScope
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.
Screenshots
Dashboard Overview
Live session monitoring with real-time stream cards — cover art, playback status, codec details and progress at a glance.

Deep Analytics
Server activity heatmap, prime-time analysis, storage matrix and playback history — aggregated into a local SQLite database.

System Pulse
Server info, live network traffic, transcoding overview with active codecs, and database health.

Features
- 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
Tech Stack
| 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) |
Getting Started
Prerequisites
- Docker & Docker Compose
- A running Jellyfin server
- A Jellyfin API key
Setup
- 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.
Local Development
npm install
npm run dev
Architecture
FinScope 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
Feature Requests
Have an idea or wish? Submit it here: finscope.featurebase.app
Bugs & Issues
Found a bug? Please open an issue on GitHub Issues.
License
MIT
apps.marketingCta.appInstallTitle
apps.marketingCta.appInstallDescription
apps.detail.sections.requirements
apps.detail.sections.categories
apps.detail.sections.related
apps.detail.related.exploreCategories
apps.detail.related.exploreAllapps.detail.sections.links
apps.detail.sections.details
ghcr.io/netz-sg/finscope:latestapps.detail.sections.runtime
- apps.detail.details.webui
http://[IP]:[PORT:80]- apps.detail.details.network
bridge- apps.detail.details.shell
sh- apps.detail.details.privileged
- false
apps.detail.sections.configuration
- apps.detail.config.target
- 80
- apps.detail.config.value
- 4687
- apps.detail.config.target
- /data
- apps.detail.config.value
- /mnt/user/appdata/finscope
- apps.detail.config.target
- DB_PATH
- apps.detail.config.value
- /data/finscope.db