Building Logarr: Mission Control for Media Server Stacks
Building Logarr: Mission Control for Media Server Stacks
The Problem
Running a media server stack means juggling multiple dashboards, each with their own logs and error reporting. When something breaks, you're chasing cascading failures across apps while the goalposts keep moving.
Plex has its dashboard. Jellyfin has another. Sonarr, Radarr, Prowlarr — each with separate logs. When a user reports "video won't play," you don't know if it's a transcoding issue, a network problem, or a database corruption.
Logarr aggregates logs from all your servers, automatically detects and ranks issues by impact, and helps you track them to resolution — all from a single dashboard.
Architecture
Features
| Category | Capabilities |
|---|---|
| Log Aggregation | Real-time streaming, full-text search, filtering by server/level/source |
| File Ingestion | Direct container log reading, multi-line stack traces, rotation detection |
| Issue Detection | Automatic error fingerprinting, deduplication, impact scoring |
| AI Analysis | Root cause identification, multi-provider support (Anthropic, OpenAI, Google, Ollama, LM Studio) |
| Session Tracking | Active playback monitoring, transcoding visibility |
Supported Servers
| Server | Status | Server | Status |
|---|---|---|---|
| Jellyfin | ✅ | Plex | ✅ |
| Sonarr | ✅ | Emby | ✅ |
| Radarr | ✅ | Whisparr | ✅ |
| Prowlarr | ✅ | Kodi | 🚧 Planned |
How Issue Detection Works
Error Fingerprinting — Similar errors are normalized and hashed to group thousands of occurrences into single trackable issues. That one bug causing 500 identical errors becomes 1 issue, not 500.
Impact Scoring — Each issue receives a 0-100 score based on:
- Severity (40%)
- Frequency (25%)
- Affected users (20%)
- Sessions (10%)
- Recency (5%)
AI-Powered Analysis
Logarr connects to multiple AI providers for deep issue analysis:
- Anthropic (Claude)
- OpenAI (GPT-4)
- Google (Gemini)
- Ollama (local models)
- LM Studio (local models)
Each issue gets a root cause analysis, AI-generated summary, and actionable fix recommendations.
Tech Stack
- Frontend: Next.js 16, React 19, TypeScript
- Backend: NestJS 11
- Database: PostgreSQL 16 + pgvector
- Real-time: WebSockets
- Deployment: Docker
Quick Start
git clone https://github.com/itz4blitz/logarr.git
cd logarr
cp .env.example .env
docker compose up -dOpen http://localhost:3001 and add your first server.
Or use pre-built images:
services:
backend:
image: itz4blitz/logarr-backend:latest
frontend:
image: itz4blitz/logarr-frontend:latestData Retention
Logarr automatically cleans up old logs:
| Log Type | Default | Notes |
|---|---|---|
| Info/Debug | 30 days | Lower-priority logs cleaned first |
| Error/Warn | 90 days | Kept 3x longer for debugging |
| Cleanup | 3 AM daily | Configurable via cron |
Issues and statistics are preserved even after logs are deleted.