Skip to content

cyb3rgh05t/komandorr

Repository files navigation

Komandorr Logo

Komandorr

A modern, feature-rich monitoring dashboard for your services and infrastructure

Monitor websites, APIs, apps, and services with real-time status tracking, response time graphs, and traffic analytics.

GitHub release GitHub stars GitHub forks GitHub issues GitHub license

Komandorr Dashboard Preview

GitHub release License Stars Documentation

✨ Features

🎯 Core Monitoring

  • Real-time Status Tracking: Monitor websites, APIs, apps, and custom services
  • Response Time Graphs: Visual charts showing service performance over time
  • Traffic Analytics: Circular progress bandwidth monitoring with carousel navigation, real-time speeds, and cumulative data transfer
  • Smart Health Checks: Automatic detection of online/offline/problem states
  • Grouped Services: Organize services by category (Production, Development, Media, etc.)

🎭 Plex Invite Management (v2.4.1)

  • Custom Invite Codes: Generate secure invite links with usage limits and expiration dates
  • Multi-Badge Status System: Visual indicators showing Active, Redeemed, Expired, Used Up, and Disabled states simultaneously
  • Advanced Filtering: Filter invites by All, Active, Redeemed, Expired, Used Up, or Disabled with real-time counts
  • Re-invitation Support: Previously removed users can be re-invited without conflicts
  • Automatic Cleanup: Orphaned invites are automatically deleted when the last user is removed
  • Library-Specific Access: Grant access to specific Plex libraries (Movies, TV Shows, Music) or all
  • Permission Control: Configure Sync, Live TV/Channels, and Plex Home access per invite
  • OAuth Redemption: Wizarr-style OAuth flow for seamless Plex account integration
  • User Management: View, edit, refresh, and remove Plex users from a dedicated management interface
  • User Expiration: Set individual expiration dates for users independent from invite expiration
  • Automatic Provisioning: Users are automatically added to your Plex server upon redemption
  • Real-time Statistics: Track invite usage, active users, and redemption rates with separate redeemed counts

πŸ“Š Watch History & Analytics (v2.4.0)

  • Complete Watch Tracking: Monitor all Plex viewing activity per user
  • Content Filtering: Filter by content type (Movies, TV Episodes, Music)
  • Time Period Filtering: View history for All Time, Today, This Week, or This Month
  • User Statistics: Track total views, favorite content types, and last activity
  • Detailed History: View progress, duration, view count, and ratings
  • Background Sync: Automatic synchronization every 15 minutes
  • Search Functionality: Search across usernames, emails, and content titles

⚑ Enterprise Caching System (v3.0.0)

  • Hybrid Caching: In-memory + Redis with 5s activities, 5m watch history/libs, 10s sessions, 30–60s stats, 5m recent media
  • 80%+ Cache Hit Rates: Dramatically reduces Plex API calls and database queries
  • Background Statistics: Pre-calculated dashboard stats updated every 60 seconds
  • Automatic Cache Warming: Proactive refresh at 80% TTL threshold prevents cold caches
  • Sub-100ms Response Times: Dashboard stats load 95% faster with background aggregation
  • Redis Support: Optional distributed cache for multi-instance deployments
  • Performance Monitoring: Real-time cache statistics with hit/miss rates and age tracking
  • Resource Reduction: 83% fewer Plex API calls, 80% fewer database queries

πŸ’Ύ Database & Storage

  • SQLite Backend: Efficient database storage with up to 1000 historical data points per service
  • Automatic Migration: Seamless upgrade from JSON to SQLite
  • Data Persistence: All service configurations and history stored reliably
  • Timezone Support: Configurable timezone for logs and timestamps
  • Relational Schema: Comprehensive invite, user, and watch history data with proper relationships

🎨 Customization

  • 11 Beautiful Themes: Dark, Plex, Jellyfin, Emby, Seerr, and 6 Infinity Stone themes
  • Multi-Language: Full support for English and German (more coming soon)
  • Responsive Design: Modern UI inspired by Sonarr/Radarr with sidebar navigation
  • Custom Intervals: Set individual check intervals per service (30s - 1 hour)
  • Skeleton Loading: Smooth loading states matching actual content layouts

πŸ” Security

  • Optional Authentication: Built-in username/password protection
  • Session Management: Secure login with automatic session handling
  • Configurable Access: Enable/disable auth dynamically via settings or .env
  • OAuth Security: Secure Plex OAuth integration with PIN-based authentication

πŸ› οΈ Technology Stack

  • Backend: Python 3.10+ with FastAPI and SQLAlchemy ORM
  • Frontend: React 18 with Vite, TailwindCSS, and Lucide Icons
  • Database: SQLite 3 for lightweight, serverless storage
  • API: RESTful API with automatic OpenAPI/Swagger documentation (dark mode)
  • Caching: TanStack Query for optimized data fetching and real-time updates

πŸš€ Quick Start

Prerequisites

  • Python 3.10+ (with pip)
  • Node.js 18+ (with npm)
  • Git (for cloning the repository)

Installation

Option 1: Automatic Setup (Recommended for Windows)

# Clone the repository
git clone https://github.com/cyb3rgh05t/komandorr.git
cd komandorr

# Run the setup script
.\setup.ps1

The setup script automatically:

  • βœ… Creates Python virtual environment
  • βœ… Installs backend dependencies
  • βœ… Installs frontend dependencies
  • βœ… Creates config.json configuration file
  • βœ… Sets up logs directory

Option 2: Manual Setup (Cross-Platform)

Starting the Application

Option 1: With Start Scripts

Terminal 1 - Backend:

.\start-backend.ps1

Terminal 2 - Frontend:

.\start-frontend.ps1

Backend Setup:

# Create and activate virtual environment
cd backend
python -m venv venv

# Windows
.\venv\Scripts\activate

# Linux/Mac
source venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Configuration will be created automatically on first run
# Edit backend/data/config.json for settings after first launch

Frontend Setup:

cd frontend
npm install

Running the Application

Terminal 1 - Backend:

cd backend
python run.py

β†’ Backend API: http://localhost:8000
β†’ API Docs: http://localhost:8000/docs

Terminal 2 - Frontend:

cd frontend
npm run dev

β†’ Dashboard: http://localhost:3000

Or use the convenience scripts (Windows):

.\start-backend.ps1   # Terminal 1
.\start-frontend.ps1  # Terminal 2

πŸ“– Usage Guide

Adding Your First Service

  1. Start both backend and frontend (see Running the Application above)
  2. Open the dashboard at http://localhost:3000
  3. Click "Add Service" button in the top navigation
  4. Fill in service details:
    • Name: Display name for your service
    • URL: The endpoint to monitor (e.g., https://example.com)
    • Type: Service category (website, api, plex, etc.)
    • Group: Organizational category (Production, Development, etc.)
    • Interval: How often to check (30s - 1 hour)
    • Description: Optional notes about the service
  5. Click Save - monitoring starts automatically!

Managing Services

  • View Details: Click any service card to see response time graphs and history
  • Edit Service: Click the edit icon on a service card
  • Delete Service: Click the delete icon (confirmation required)
  • Enable/Disable: Toggle monitoring without deleting the service

Customizing Your Dashboard

  • Change Theme: Click the theme dropdown in top navigation (11 themes available)
  • Switch Language: Click the language dropdown (EN/DE)
  • User Settings: Click user icon for authentication and preferences
  • View Traffic: Access the Traffic page for bandwidth monitoring (Plex services)

Docker Deployment

See Docker Documentation for container deployment instructions.

πŸ’Ύ Database & Storage

SQLite Database (v1.6.0+)

Komandorr uses SQLite for efficient, reliable data storage:

Location: backend/data/komandorr.db

Schema:

  • services - Service configuration and current state
  • response_history - Response time measurements (up to 1000 points per service)
  • traffic_history - Bandwidth metrics (up to 1000 points per service)

Benefits:

  • βœ… Fast queries with indexed lookups
  • βœ… Stores 10x more history than JSON (1000 vs 100 points)
  • βœ… Automatic data cleanup to prevent bloat
  • βœ… Better concurrent access handling
  • βœ… Single file, easy backups

Migrating from JSON (v1.5.x)

If you're upgrading from an older version with services.json:

cd backend
python migrate_to_sqlite.py

βœ… The script automatically:

  • Reads all services from services.json
  • Creates SQLite database with proper schema
  • Imports all services with history preserved
  • Backs up original JSON as services.json.backup
  • No data loss - safe migration!

Example service data:

[
  {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "Service Name",
    "url": "https://example.com",
    "type": "website",
    "group": "Production",
    "interval": 60,
    "description": "Description",
    "enabled": true,
    "status": "online",
    "response_time": 125.5,
    "last_check": "2025-11-13T10:30:00.123456+00:00",
    "traffic": null,
    "traffic_history": [],
    "response_history": [
      {
        "timestamp": "2025-11-13T10:30:00.123456+00:00",
        "response_time": 125.5
      }
    ]
  }
]

βš™οΈ Configuration

Configuration System

Komandorr uses a two-tier configuration system:

  1. Environment Variables (.env file) - Server-level settings:

    • HOST - Server host (default: 0.0.0.0)
    • PORT - Server port (default: 8000)
    • DEBUG - Debug mode (default: false)
    • CORS_ORIGINS - CORS allowed origins
  2. config.json (created automatically) - Application settings:

    • Authentication (enable/disable, credentials)
    • Logging (level, file size, backup count)
    • Timezone configuration
    • Plex integration (server URL, token, name)
    • API tokens (GitHub, TMDB for invites)

Authentication

Komandorr supports Basic Authentication to protect the dashboard.

Default Credentials:

  • Username: admin
  • Password: admin

⚠️ IMPORTANT: Change the default credentials in production!

Managing Settings

All application settings can be managed through the Settings UI:

  1. Open Settings: Click the user icon in top navigation β†’ Settings
  2. Authentication: Enable/disable auth, change username/password
  3. Logging: Configure log level, file rotation settings
  4. General: Set timezone for logs and UI display
  5. Plex: Configure Plex Media Server integration
  6. API Tokens: Set GitHub and TMDB tokens for invite system
  7. Save Settings: Single button saves all configuration to config.json

Settings are stored in: backend/data/config.json

Timezone Configuration

Komandorr uses UTC by default. Configure timezone via Settings UI or edit config.json:

{
  "general": {
    "timezone": "Europe/Berlin"
  }
}

Valid timezones: Wikipedia - TZ database

Note: Timezone is used for backend logging and UI timestamp display.

Authentication Management

After logging in:

  1. Change Credentials: Settings β†’ Authentication Settings
  2. Enable/Disable Auth: Toggle in Settings (redirects to login when enabled)
  3. Logout: User icon β†’ Logout

Alternative: Manually edit backend/data/config.json:

{
  "auth": {
    "enabled": true,
    "username": "your_username",
    "password": "your_password"
  }
}

🎨 Themes & Localization

Available Themes

Komandorr includes 11 beautiful themes to match your preference:

Theme Color Scheme Inspired By
Dark πŸŒ‘ Gray tones Default modern dark
Plex 🟠 Orange/Yellow Plex Media Server
Jellyfin 🟣 Purple/Violet Jellyfin Media
Seerr πŸ”΅ Indigo/Blue Overseerr/Jellyseerr
Emby 🟒 Green Emby Media Server
Mind Stone πŸ’› Yellow Marvel Infinity Stones
Power Stone πŸ’œ Magenta/Purple Marvel Infinity Stones
Reality Stone ❀️ Red Marvel Infinity Stones
Soul Stone 🧑 Orange Marvel Infinity Stones
Space Stone πŸ’™ Blue Marvel Infinity Stones
Time Stone πŸ’š Green Marvel Infinity Stones

Languages

  • πŸ‡¬πŸ‡§ English (Default)
  • πŸ‡©πŸ‡ͺ German (Deutsch)
  • 🌍 More languages coming soon!

Contribute translations at GitHub Issues

πŸ“š Documentation

Comprehensive documentation is available at cyb3rgh05t.github.io/komandorr

Quick Links

🀝 Contributing

Contributions are welcome! Please read our Contributing Guide for details.

Ways to Contribute

  • πŸ› Report bugs via GitHub Issues
  • πŸ’‘ Suggest features or improvements
  • 🌍 Add translations for new languages
  • 🎨 Create new themes
  • πŸ“– Improve documentation
  • πŸ’» Submit pull requests

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Inspired by service monitoring tools like Uptime Kuma and Homer
  • UI design influenced by Sonarr, Radarr, and the *arr family
  • Built with amazing open-source technologies

Created with ❀️ by cyb3rgh05t for the Community

If you find this project useful, please consider giving it a ⭐!

Report Bug Β· Request Feature Β· Documentation

About

A modern WebUI dashboard for monitoring apps, websites, panels and projects for their online/offline/problem status.

Resources

License

Stars

Watchers

Forks

Packages