
Dashbrr
A sleek, modern dashboard for monitoring and managing your media stack services.
Dashbrr provides real-time monitoring, service health checks, and unified management for your entire media server ecosystem.
Table of Contents
- Docker Installation - Binary Installation - Configuration File - Environment Variables - Service Discovery - Command Line Interface - AuthenticationFeatures
- Real-time service health monitoring
- Service-specific data display and management
- Cached data with live updates via SSE (Server-Sent Events)
- Flexible authentication options:
- Responsive and modern UI with draggable cards
- Docker support
- Multiple database support (SQLite & PostgreSQL)
- Built-in memory caching system
- Comprehensive CLI for service management and system operations
- Progressive Web App (PWA) support for mobile and desktop
Supported Services
Media Management
- Plex: Active streams monitoring, version check
- Jellyfin: Active sessions monitoring, play/transcode state, version check
- Sonarr, Radarr, Lidarr, Readarr, Whisparr:
- Bazarr: Subtitle backlog, provider status, health issue visibility
- Prowlarr: Indexer health, stats, active indexers
- Overseerr: Request management, pending requests monitoring
- Maintainerr: Collection and deletion-rule monitoring
Download Management
- Autobrr: IRC network health, release statistics, recent releases
- SABnzbd: Queue and failure summary
- NZBGet: Queue and failure summary
- Qui: qBittorrent instance connectivity and transfer telemetry
Network
- Tailscale: Device status, information tracking, tag overview
Monitoring / Infrastructure
- Uptime Kuma: Monitor status summary via metrics
- Traefik: Router/service/middleware overview and issue routers
- General Service: Generic health endpoint checks. Shows the top-level fields of a JSON response (for example, tracker stats) as a key/value table.
Installation
Docker Installation
Several docker-compose configurations are available in the docker-compose directory:
# Basic setup
docker compose -f docker-compose/docker-compose.yml up -d
With service discovery features
docker compose -f docker-compose/docker-compose.discovery.yml up -d
All configurations use PostgreSQL as the database by default. If you want to use SQLite instead, uncomment the SQLite configuration lines and comment out the PostgreSQL ones in your chosen compose file. See example configurations in the respective files in the docker-compose directory.
Note: There is also a docker-compose.integration.yml file in the docker-compose directory which is used specifically for running integration tests via the make test-integration command. This file is not intended for regular deployment use.
Binary Installation
Linux/macOS
Download the latest release:
wget $(curl -s https://api.github.com/repos/autobrr/dashbrr/releases/latest | grep download | grep linux_x86_64 | cut -d\" -f4)
Unpack
Run with root or sudo. If you do not have root, place the binary in your home directory (e.g., ~/.bin).
tar -C /usr/local/bin -xzf dashbrr*.tar.gz
Systemd Service (Linux)
Create a systemd service file:
sudo nano /etc/systemd/system/[email protected]
Add the following content:
[Unit]
Description=dashbrr service for %i
After=syslog.target network-online.target
[Service]
Type=simple
User=%i
Group=%i
ExecStart=/usr/local/bin/dashbrr serve --config=/home/%i/.config/dashbrr/config.toml
[Install]
WantedBy=multi-user.target
Enable and start the service:
sudo systemctl enable -q --now dashbrr@$USER
Configuration
Configuration File
Dashbrr uses a simple TOML configuration file. The serve command and all CLI commands select the config file in the same way. Highest priority first:
- The
--configflag - The
DASHBRR__CONFIG_PATHenvironment variable config.tomlin your user config directory (for example~/.config/dashbrr), then in/config./config.toml
DASHBRR__DB_PATH to a writable location, because the default database is also in that directory. Environment variables always override the values in the config file.
[server]
listen_addr = ":8080"
Optional: serve dashbrr below a path, for example https://example.com/dashbrr/
base_path = "/dashbrr"
Optional: if UI is served from a different origin than the API
cors_origins = ["http://localhost:3000", "https://dash.example.com"]
cors_allow_credentials = true
[database]
type = "sqlite"
path = "./data/dashbrr.db"
PostgreSQL can use a standard connection URI instead:
type = "postgres"
dsn = "postgres://dashbrr:password@postgres:5432/dashbrr?sslmode=require"
[log]
trace, debug, info, warn, error, fatal, panic
level = "info"
Optional: OpenID Connect. You can also set these with DASHBRR__OIDC_* variables.
[auth.oidc]
issuer = "https://your-provider.com"
client_id = "your-client-id"
client_secret = "your-client-secret"
Required with OIDC. Include the base path, if you set one.
redirect_url = "https://dash.example.com/api/auth/oidc/callback"
To serve dashbrr below a path behind a reverse proxy, see Base path.
A relative [database] path is relative to the directory of the config file, not to the working directory. By default, the database file is data/dashbrr.db in that directory. For example:
- If your config is at
/home/user/.config/dashbrr/config.toml, the database will be at/home/user/.config/dashbrr/data/dashbrr.db - If your config is at
/etc/dashbrr/config.toml, the database will be at/etc/dashbrr/data/dashbrr.db
--db-file, DASHBRR__DB_PATH, or [database] path. The flag has the highest priority, then the environment variable, then the config file. A relative value in --db-file or DASHBRR__DB_PATH is relative to the working directory:
dashbrr serve --config=/etc/dashbrr/config.toml --db-file=/var/lib/dashbrr/dashbrr.db
Environment Variables
For a complete list of available environment variables and their configurations, see our Environment Variables Documentation.
Key configuration options include:
- Server settings (listen address, ports)
- Database settings (SQLite/PostgreSQL)
- Authentication (Built-in/OIDC)
- Log level (
DASHBRR__LOG_LEVEL)
Service Discovery
Dashbrr supports automatic service discovery and configuration through Docker labels, Kubernetes annotations, and external configuration files. For detailed information about service discovery and configuration management, see our Service Discovery Documentation.
Quick references:
Key features include:- Docker container label-based discovery
- Kubernetes service annotation-based discovery
- YAML/JSON configuration file import/export
- Environment variable substitution for API keys
- Secure configuration management
Command Line Interface
Dashbrr provides a CLI for managing services, user, and system operations. For detailed information about available commands and their usage, see our Command Line Interface Documentation.
Key features include:
- Service management (add, remove, list)
- User management
- Health checks
- Version information
Authentication
Dashbrr offers two authentication methods:
Built-in Authentication (Default)
Simple username/password authentication with user management through the application.
OpenID Connect (OIDC)
Enterprise-grade authentication with support for providers like Auth0.
Required OIDC environment variables:
DASHBRR__OIDC_ISSUER=https://your-provider.com
DASHBRR__OIDC_CLIENT_ID=your-client-id
DASHBRR__OIDC_CLIENT_SECRET=your-client-secret
DASHBRR__OIDC_REDIRECT_URL=https://dash.example.com/api/auth/oidc/callback
Tech Stack
Backend
- Go with Gin web framework
- Built-in memory caching system
- Database: SQLite or PostgreSQL
Frontend
- React with TypeScript
- Vite & TailwindCSS
- PNPM package manager
Screenshots
!Main Dashboard _Main dashboard with service health monitoring and status cards_
!Mobile View _Mobile-friendly interface with PWA support_
!Built-in Authentication _Built-in authentication system_
!Built-in Register _Registration form_
!OIDC Login _OpenID Connect (OIDC) authentication support_