Skip to content
🚧 These docs are a work in progress and may contain inaccuracies. Content is being actively reviewed and validated.

FAQ

Yes. Dubby’s core features — including GPU transcoding, HDR tone mapping, trickplay thumbnails, and skip intro — are free for all users. A premium tier adds advanced features like AI enrichment, parental controls, and remote access, but the core local playback experience is free.

No. Dubby is source-available but not open source. See Why Not Open Source? for the reasoning behind this decision.

How is Dubby different from Plex or Jellyfin?

Section titled “How is Dubby different from Plex or Jellyfin?”

The main differences:

  • No paywall on core features — GPU transcoding and HDR tone mapping are free, unlike Plex’s paid Plex Pass
  • 7-tier playback hierarchy — More granular fallback options between direct play and full transcode, reducing unnecessary CPU usage
  • Native TV apps — Built specifically for D-pad navigation and HDR, not web wrappers
  • Embedded database — SQLite with no external database server to manage, unlike Jellyfin’s reliance on external databases for larger setups
  • Built-in podcast support — Subscribe, discover, and listen to podcasts alongside your media library

Can I migrate from Plex, Jellyfin, or Emby?

Section titled “Can I migrate from Plex, Jellyfin, or Emby?”

Yes. Dubby can import libraries, watch history, users, collections, and artwork from Plex, Jellyfin, and Emby. The migration system includes auto-discovery of servers on your network, a preview step before importing, and resumable workflows that survive crashes. See the Migration & Import guide for setup instructions.

Dubby runs anywhere Docker runs. It’s tested on:

  • Linux (x86-64) — recommended for production
  • macOS (Apple Silicon and Intel) — for development and local use
  • Windows (via WSL2/Docker Desktop) — for development and local use

ARM64 support (e.g., Raspberry Pi) is planned but not yet available. See System Requirements for details.

  • CPU: 2 cores (4+ recommended for transcoding)
  • RAM: 2 GB (8–16 GB recommended)
  • Storage: 1 GB for application data, plus cache space for transcodes

A GPU (Intel Quick Sync, NVIDIA, or AMD VAAPI) is strongly recommended for transcoding. Without one, the CPU handles all transcoding in software.

Yes. Dubby uses Valkey as a job queue for background tasks like library scanning, metadata fetching, and transcoding. The Docker Compose quick start includes Valkey automatically.

Can I use an external database instead of SQLite?

Section titled “Can I use an external database instead of SQLite?”

No. Dubby uses an embedded SQLite database by design. This simplifies deployment (one container, no database server) and keeps the stack minimal. SQLite handles large libraries well — it’s the same database engine used by most smartphones and many large-scale applications.

Why is my file transcoding instead of direct playing?

Section titled “Why is my file transcoding instead of direct playing?”

Dubby transcodes when the client can’t play the file natively. Common reasons:

  • Unsupported video codec — e.g., HEVC on Chrome, which doesn’t support it
  • Unsupported audio codec — e.g., DTS or TrueHD, which no browser supports natively
  • Container format mismatch — e.g., AVI files that need repackaging for HLS delivery

Check Supported Formats to see what each client can direct play.

  1. Enable hardware acceleration — See Hardware Acceleration
  2. Use compatible formats — H.264 video + AAC audio in an MKV or MP4 container direct plays on almost everything
  3. Use the right client — The Android TV app (especially on NVIDIA Shield) supports the widest range of codecs

Yes. Dubby supports HDR10, HLG, and Dolby Vision passthrough when your client and display support it. If the client doesn’t support HDR, Dubby automatically tone maps to SDR using GPU-accelerated processing (no quality paywall).

Terminal window
# Docker Compose
docker compose logs dubby --tail 100 -f
# Kubernetes
kubectl logs deployment/dubby-server -n dubby -f

For more verbose output, set DUBBY_LOG_LEVEL=debug.

If you’re locked out, you can reset the admin password directly in the database:

Terminal window
docker compose exec dubby sqlite3 /data/dubby.db \
"UPDATE users SET password_hash = NULL WHERE role = 'owner';"

Then restart the server — the next login with the owner account will prompt you to set a new password.

My container keeps restarting — what’s wrong?

Section titled “My container keeps restarting — what’s wrong?”

Check the logs: docker compose logs dubby --tail 50. The most common causes are:

  • Missing BETTER_AUTH_SECRET environment variable
  • Database file permission issues (needs UID 1000)
  • Incorrect REDIS_URL if Valkey is on a different hostname

See Troubleshooting for detailed solutions.