Use one or more instances of HandBrake video transcoder on a headless device via a web interface.
License: AGPL-3.0. Built with: TypeScript, SCSS, Dockerfile, JavaScript, HTML. Source: https://github.com/TheNickOfTime/handbrake-web.
services: handbrake-server: image: ghcr.io/thenickoftime/handbrake-web-server:latest container_name: handbrake-web-server user: 1000:1000 # edit to run as user (uuid:guid) with permissions to access your media. 0:0 to run as root (not recommended). ports: - 9999:9999 volumes: - /path/to/your/data:/data - /path/to/your/media:/video # ensure this path is the same across all containers handbrake-worker: image: ghcr.io/thenickoftime/handbrake-web-worker:latest container_name: handbrake-web-worker user: 1000:1000 # edit to run as user (uuid:guid) with permissions to access your media. 0:0 to run as root (not recommended). environment: - WORKER_ID=handbrake-worker # give your worker a unique name - SERVER_URL=handbrake-server # change if setting up a standalone worker, prefix with http(s):// if necessary - SERVER_PORT=9999 # change if using a reverse proxy or the port is otherwise different than above volumes: - /path/to/your/media:/video # ensure this path is the same across all containers depends_on: - handbrake-server
Self-hosting gives you three things SaaS can’t: data ownership (the files live on disks you control), cost predictability (a one-time setup vs. recurring per-seat fees that grow with your household or team), and longevity (open-source means the app keeps working even if the maintainers move on, since you can pin a working version). The trade-off is that you take on the operational work of running a server, applying updates, and handling backups.
Most self-hosted apps run comfortably on modest hardware — a Raspberry Pi 4, a mini PC, a NAS with Docker support, or a small VPS is usually enough for personal or family use. CPU and RAM requirements scale with how many simultaneous users or how much data you push through HandBrake Web. Storage requirements depend on the kind of data you keep; check the README for guidance on data retention.
Last verified: 2026-04-21