Introduction
Dubby is a self-hosted media server for movies, TV shows, and podcasts. It runs on your own hardware, streams to any device, and puts you in control of your media library.
What Dubby does
Section titled “What Dubby does”Point Dubby at your media files, and it handles the rest:
- Plays everything — A 7-tier playback hierarchy from direct play to full transcode means your media always works. No “format not supported” screens.
- Streams to any device — Native apps for web, Apple TV, and Android TV. Dubby transcodes on the fly to match each device’s capabilities.
- HDR & Dolby Vision — HDR10, Dolby Vision, and HLG passthrough with automatic tone-mapping fallback when your display doesn’t support HDR. GPU-accelerated with no paywall.
- Organizes your library — Automatic artwork, descriptions, cast info, and ratings from TMDB, TVDB, Trakt, and MDBList. Subtitles fetched from OpenSubtitles.
- GPU transcoding included — Intel Quick Sync, NVIDIA NVENC, and AMD VAAPI hardware acceleration for every user. No subscription required.
What sets Dubby apart
Section titled “What sets Dubby apart”Core playback features are free
Section titled “Core playback features are free”GPU transcoding, HDR tone mapping, trickplay thumbnails, skip intro — features that other media servers lock behind a paid tier are included for every Dubby user. A premium tier is planned for advanced features like remote access, but the core local playback experience will always be free.
A playback engine that actually adapts
Section titled “A playback engine that actually adapts”Most media servers try direct play, and if that fails, fall back to a full transcode. Dubby has a 7-tier playback hierarchy with options in between — remuxing, audio-only transcoding, HLS with copied streams — so it picks the lightest option that works for your device. The result is less CPU usage, faster start times, and fewer unnecessary transcodes.
Native TV apps, not web wrappers
Section titled “Native TV apps, not web wrappers”The Apple TV and Android TV apps are built with native playback engines, D-pad navigation, and full HDR support. They’re designed for the living room from the ground up, not a web UI crammed into a TV frame.
A clean, modern interface
Section titled “A clean, modern interface”Dubby’s UI is purpose-built and opinionated. No clutter, no ads injected into your library, no sponsored content. Just your media, presented well across every platform.
One container, no database server
Section titled “One container, no database server”Dubby uses an embedded SQLite database — no Postgres or MySQL instance to set up, configure, back up, or keep running. One container and a Docker Compose file gets you a fully functional media server.
Feature overview
Section titled “Feature overview”Playback & streaming
Section titled “Playback & streaming”- Skip intro — Audio fingerprinting detects intros across episodes automatically.
- Seek preview thumbnails — Trickplay sprites generated so you can scrub through any file and see where you are.
- Chapter navigation — Jump between chapters and bookmarks in supported files.
- Playback speed control — Adjust playback speed on any platform.
- Audio track switching — Switch between audio tracks mid-playback with codec and channel info.
- Subtitle track switching — Switch between embedded, sidecar, and downloaded subtitles during playback. Supports SRT, ASS, SSA, WebVTT, and PGS.
- Customizable subtitle styling — Font, size, color, background opacity, and edge effects.
- Next episode auto-play — Automatically plays the next episode with a cancellation prompt.
- Stats overlay — View real-time streaming info including bitrate, codec, and resolution.
- Ahead-of-time optimization — Pre-transcode your library for instant playback on any device. A smart coverage matrix builds the minimum set of variants needed.
Library & metadata
Section titled “Library & metadata”- Automatic library scanning — File watcher detects new, changed, and removed media automatically. Handles files still being copied with stability checks.
- Multi-provider metadata — Artwork, descriptions, cast, ratings, and genres from TMDB, TVDB, Trakt, and MDBList.
- Multi-rating display — Show ratings from IMDB, TMDB, Trakt, and MDBList side by side.
- Trakt scrobbling — Live scrobbling and watch history sync with your Trakt account.
- Automatic subtitle downloads — Fetch subtitles from OpenSubtitles with per-library language preferences and bulk download queuing.
- Custom metadata editing — Override title, sort title, overview, year, genres, and content rating for any item.
- Image gallery — Browse and select from available posters, backdrops, and logos per media item.
- Multi-version support — View and select preferred file versions or editions for movies.
- Unmatched item management — Identify and manually match media that couldn’t be auto-identified.
- Search — Full-text search across movies, shows, and people with autocomplete suggestions.
- Advanced filtering — Filter by genre, year, media type, and sort order.
Discovery & requests
Section titled “Discovery & requests”- Discover & request — Browse trending, upcoming, and popular content from TMDB and request new movies or shows directly from the app.
- Built-in Seerr integration — Media requests flow through Seerr with quality profile and tag selection. No extra setup.
- Watchlist — Save items to watch later and track your queue.
- Continue watching — Resume in-progress items across devices.
Podcasts
Section titled “Podcasts”- RSS subscriptions — Subscribe to any podcast via RSS feed.
- Podcast discovery — Browse and search the Podcast Index catalog.
- Queue management — Queue episodes and manage your listening order.
- Episode downloads — Download episodes for offline playback.
- Podcasting 2.0 — Chapters, transcripts, and enhanced metadata support.
User management
Section titled “User management”- Role-based access — Owner, admin, member, and guest roles with granular permissions.
- Per-library access — Control which libraries each user can see, with content rating restrictions and expiration dates.
- Parental controls — Restrict content by MPAA (G through NC-17) and US TV (TV-Y through TV-MA) ratings per user.
- Invite system — Generate invite links with expiration for controlled registration.
- User preferences — Per-user audio language, subtitle language, UI language, and accent color.
- Watch progress per user — Separate watch history and continue-watching lists per user.
Administration
Section titled “Administration”- Dashboard — Real-time view of active sessions, system stats (CPU, RAM, uptime), and bandwidth usage.
- Play analytics — Top users by watch time, weekly play trends, and most-watched media.
- Job monitoring — View, cancel, retry, and clean up background workflows with parent/child hierarchy.
- Audit logging — Filterable log of security-relevant events: logins, config changes, data access, and more.
- Feature flags — Enable or disable features dynamically, including beta features.
- Backup & restore — Scheduled backups with retention policies. Download, upload to a new server, or restore with one click.
- Monitoring — Built-in OpenTelemetry metrics with Prometheus exporter for Grafana dashboards and alerting.
- Setup wizard — Guided initial setup for account creation, privacy settings, library paths, and metadata providers.
- REST API — Full public API with OpenAPI documentation, bearer token auth, and cursor-based pagination.
- Real-time events — Server-sent events for live updates on scan progress, job status, and session changes.
Privacy & trust
Section titled “Privacy & trust”- No ads or tracking. Telemetry is anonymous and opt-out.
- No cloud account required. Your server authenticates users locally.
- Privacy presets — Choose from Maximum, Private, Balanced, or Open to control external service access, image proxying, and data masking.
- TMDB image proxying — Artwork is fetched by the server and served locally so client IP addresses never reach external CDNs.
- Log redaction — File paths, media titles, user info, and IP addresses can each be independently masked in logs and API responses.
- See our Security page for details on encryption, rate limiting, and container hardening.
Simple to deploy
Section titled “Simple to deploy”Get running in minutes with Docker Compose, Kubernetes, or Unraid. Dubby runs as a single container with an embedded SQLite database — no external database to manage.
For larger deployments, split into separate API and worker pods with a shared Valkey instance for background jobs.
Next steps
Section titled “Next steps”- Quick Start — Get running in 5 minutes
- System Requirements — What hardware you need
- Configuration — Environment variables and settings