Set up Homebridge with Docker or Docker Compose on Linux, Synology NAS, or Unraid. Covers host networking, permissions, and troubleshooting.
If you already run a Linux home server, a Synology or QNAP NAS, or an Unraid machine, running Homebridge in a Docker container saves you from buying extra hardware. Homebridge runs isolated from your host operating system and starts back up automatically after a reboot.
This guide walks through the required network settings, shows how to launch the container with Docker Compose or Portainer, and explains how to manage it from the Homemanager app or a web browser.
Use existing hardware: Run Homebridge on a machine you already own, saving purchase costs and an extra power plug.
Clean isolation: Node.js, libraries, and Homebridge stay inside the container without altering your host system.
Simple backups: Settings, plugins, and HomeKit pairing data live in a single mapped folder on your host, making server moves straightforward.
Automatic restarts: Using restart: unless-stopped, Docker brings Homebridge back up after crashes or host reboots.
Built-in FFmpeg: The official image includes ffmpeg with audio transcoding out of the box, so camera plugins work immediately without manual compilation.
mDNS limitation with Docker Desktop (macOS & Windows):
Docker Desktop on macOS and Windows runs containers inside a virtual Linux machine. This virtualization layer prevents host network mode (network_mode: host) from passing multicast mDNS traffic (Bonjour over UDP port 5353) to your physical network. Apple Home will not find the bridge and will display “No Response” (documented in Docker Desktop issue #570).
Docker normally isolates containers in an internal bridge network. Apple HomeKit relies on mDNS (Bonjour over UDP port 5353) for local device discovery. These multicast packets cannot cross Docker bridge boundaries.
Homebridge must use host network mode (network_mode: host or --net=host), allowing the container to bind directly to the host's IP address and network interface.
Container filesystems reset whenever an image updates or a container is recreated.
The internal path /homebridge must map to a persistent directory on your host. This preserves config.json, installed plugins, cache files, and Apple Home pairing keys.
The official multi-architecture image is maintained at homebridge/homebridge:latest and supports amd64, arm64, and armv7 processors.
Note on image naming: The official image migrated from oznu/homebridge to homebridge/homebridge on Docker Hub. Use homebridge/homebridge for all new setups and updates.
Synology Plus series models with Intel or AMD processors (like DS224+, DS720+, DS920+, DS1522+) support Compose stacks inside DSM 7.2 Container Manager.
If you own a j-series or Play-series DiskStation without Docker support, or prefer running without containers, use the native SPK package instead. Follow our Synology NAS guide.
Open File Station and create a folder named homebridge inside your shared docker folder.
Open Container Manager and select Project on the left.
Click Create:
Project Name:homebridge
Path: Select /docker/homebridge.
Source: Choose Create docker-compose.yaml and paste:
Open Container Station and navigate to Applications (or Create).
Create an application called homebridge.
Paste the Compose YAML and verify that network_mode: host is set.
Map a volume from your storage pool (such as /share/Container/homebridge:/homebridge).
Click Create to launch the container.
Proxmox VE: Run Docker inside an unprivileged LXC container (Debian or Alpine) with nesting enabled, or use a minimal VM.
TrueNAS SCALE: Use the app catalog or launch a custom Compose app with host networking and a persistent dataset for /homebridge (read the TrueNAS SCALE wiki guide).
Once the container is running, Homebridge is available on your local network. The web interface (homebridge-config-ui-x) acts as the browser dashboard and provides the API that Homemanager connects to.
The instance runs unencrypted over port 8581 by default.
Because this is a fresh setup without existing accounts, you create an administrator account during the first connection. You can do this in the app or in a browser:
Open Homemanager while connected to the same Wi-Fi network as the host server. Tap Connect to Server during initial launch (or Add Platform in the platform list). With host networking enabled, the app finds the instance automatically using mDNS and Bonjour.
Homemanager detects the new server and opens the Create new User screen. Enter a display name, username (such as admin), and password, then tap Create and Log In.
The account is created directly on the server, credentials are saved securely in your iOS Keychain, and Homemanager connects immediately.
Discovery issues or running Docker on a remote server? Refer to Connecting Servers to Homemanager for manual IP and port configuration and network troubleshooting.
Update plugins and Homebridge releases directly in Homemanager or through the web interface. All configuration files and dependencies stay in your mapped /homebridge folder, so changes persist across container restarts. You do not need to rebuild the container for plugin updates.
You can run maintenance commands without logging into the host over SSH:
Homemanager app & web UI: Both include a built-in terminal to run commands directly inside the container environment.
Host terminal (docker exec): If you are connected to the host via SSH, run commands with docker exec.
# Reset the administrator password to admin/admindocker exec -it homebridge hb-service reset-admin# Follow live container logsdocker logs -f homebridge# Open an interactive shell inside the containerdocker exec -it homebridge sh# Restart the containerdocker restart homebridge
If you have the web interface or Homemanager open, you can run hb-service commands directly in the built-in terminal without the docker exec -it homebridge prefix.
In container setups, discovery problems usually trace back to mDNS:
Check network mode: Make sure the container runs with network_mode: host. Standard Docker bridge networks block mDNS discovery packets.
Avahi daemon conflict: If your Linux host already runs avahi-daemon, it can collide on port 5353. In Homebridge under Advanced Settings, change the mDNS advertiser from Bonjour HAP to Ciao. Alternatively, pass ENABLE_AVAHI=0 to the container and mount your host's D-Bus and Avahi sockets:
Pair with Apple Home:
Scan the setup QR code in Homemanager or on the web dashboard with the Apple Home app on your iPhone. Apple Home pairing guide
Install plugins:
Search for device integrations in Homemanager or the web interface (such as Tuya, Shelly, FritzBox, Ring, or cameras). Tips on finding and evaluating plugins
Set up child bridges:
Isolate larger plugins into separate processes so an issue with one accessory does not affect the rest of your home. Learn more about child bridges