Skip to content
FA Ferdous Azad

Self‑Hosted Streaming with HomeFlix: One‑Click Docker Setup

HomeFlix is an open‑source, self‑hosted streaming stack. Get the architecture, one‑click Docker install, and tips to extend it for your media platform.

HomeFlix hit GitHub this week with a full‑stack, self‑hosted streaming solution that can scan your drives, fetch TMDB metadata, transcode on‑the‑fly, and cast to an Android TV app—all under a single Docker‑compatible repo.

If you’ve ever wrestled with Plex or Jellyfin configuration, the ready‑to‑run homeflix-wifi package lets you spin up a Netflix‑like service in under ten minutes while keeping full control of your media pipeline.

#What happened

  • Repository release – On 2024‑10‑31, Ferdous Azad published homeflix-wifi (https://github.com/azad25/homeflix-wifi) and the companion Android TV client homeflix-tv-app.
  • Core stack – Backend in Go 1.21+, frontend in React (Node 18+), FFmpeg for transcoding, optional Redis cache, and Docker scripts for Jackett (torrent indexer).
  • Installation – A quick-start.sh script provisions Go, Node, FFmpeg, and launches a Docker‑Compose stack exposing the web UI on port 3008 and the API on 8252.
Bash
# quick-start.sh
#!/usr/bin/env bash
set -e
# Install Go, Node, FFmpeg if missing
./install_deps.sh
# Bring up the stack
docker compose up -d
  • Features – Automatic library scanning, TMDB enrichment, HLS on‑the‑fly transcoding (GPU‑accelerated when available), one‑click torrent download, subtitle fetching from OpenSubtitles, Live TV guide, and a “Cast” protocol to push playback to the TV app.
  • Self‑update – In‑app “Software Update” pulls the latest commit from the configured release branch, rebuilds, and rolls back on failure.

#Why it matters

HomeFlix lowers the barrier for developers who want to experiment with media‑delivery pipelines without buying a commercial license.

  • Full control – All code runs on your hardware; no data leaves your network, which is critical for privacy‑first startups or enterprises handling proprietary video assets.
  • Modern stack – Go for the API gives you a compiled, low‑latency service; React + Vite delivers a responsive UI; FFmpeg handles the heavy lifting of transcoding, and the optional Redis layer demonstrates a typical cache pattern for thumbnail and subtitle lookups.
docker-compose.ymlYAML
services:
  backend:
    image: homeflix/backend:latest
    ports:
      - "8252:8252"
  frontend:
    image: homeflix/frontend:latest
    ports:
      - "3008:3008"
  • Extensible – The repo includes clearly separated backend/, frontend/, and scripts/ directories, making it easy to replace the torrent source, add a custom recommendation engine, or plug in a different subtitle provider.
  • Operational parity – By shipping a homeflix.service systemd unit and Docker‑Compose files, the project mirrors real‑world deployment practices, giving engineers a ready example of how to orchestrate multi‑process services on Linux.
homeflix.serviceINI
[Unit]
Description=HomeFlix streaming service
After=network.target

[Service]
User=homeflix
WorkingDirectory=/opt/homeflix
ExecStart=/usr/local/bin/docker compose up
Restart=always

[Install]
WantedBy=multi-user.target

Teams building SaaS video platforms can benchmark HomeFlix’s transcoding latency, evaluate its HLS pipeline, or reuse its TMDB‑matching logic instead of building from scratch.

#What it means for you

  1. Try it locally – Clone the repo, run ./quick-start.sh, and point a browser to http://localhost:3008. You’ll see the Apple‑TV‑style UI and can add a test folder under Settings → Storage.
  2. Assess hardware acceleration – If your server has an NVIDIA GPU, set HW_ACCEL=nvenc in backend/.env. HomeFlix will automatically switch FFmpeg to the hardware encoder; compare CPU vs GPU transcoding times with a 1080p sample.
  3. Integrate your own metadata source – The TMDB lookup lives in backend/tmdb.go. Replace the API key or swap the client for a private catalog to see how little code changes are required.
  4. Deploy as a service – Copy homeflix.service to /etc/systemd/system/, edit the User and WorkingDirectory fields, then enable with systemctl enable --now homeflix. This gives you a production‑grade start‑stop lifecycle without extra tooling.

Note

Ports 3008 (web) and 8252 (API) must be free on the host. Adjust the docker-compose.yml file if you need to avoid conflicts.

#The bigger picture

HomeFlix joins a growing ecosystem of open‑source media servers that aim to replace proprietary offerings. Plex introduced a free tier in 2020, while Jellyfin has been community‑driven since 2018. HomeFlix distinguishes itself by bundling a casting protocol and a Live TV guide out of the box, features that typically require separate plugins in other stacks.

The project’s reliance on Docker and systemd reflects a broader trend: developers are consolidating media workloads onto container‑first infrastructures to simplify scaling and CI/CD. By exposing a single docker-compose.yml, HomeFlix aligns with the “single‑command dev environment” model popularized by tools like docker compose up.

From a market perspective, the rise of personal‑cloud streaming (e.g., Emby, Kodi) is being driven by privacy concerns and the cost of cloud bandwidth. HomeFlix’s MIT license removes licensing friction, making it an attractive baseline for startups that want to offer a “your‑own‑Netflix” product without negotiating vendor contracts.

#Key takeaways

  • HomeFlix provides a ready‑to‑run, MIT‑licensed streaming stack built with Go, React, and FFmpeg.
  • Installation is script‑driven; a single quick-start.sh gets the UI on port 3008 and the API on 8252.
  • The architecture showcases common production patterns: systemd service, Docker‑Compose orchestration, optional Redis cache, and GPU‑accelerated transcoding.
  • Developers can replace TMDB, torrent, or subtitle modules with minimal code changes, making the repo a solid foundation for custom media platforms.
  • By keeping everything self‑hosted, HomeFlix addresses privacy and cost concerns that are increasingly important for both hobbyists and enterprises.

Was this useful?

Get new posts by email

One short email a week with what I wrote. No spam, unsubscribe in one click.

Sources

Drafted with AI assistance from the sources above, then reviewed and published by Ferdous Azad. Spotted an error? Let me know.

Comments

No comments yet. Start the conversation.

Leave a comment

First-time comments are reviewed before they appear. Be kind and on topic.

More in Tech News

View all