homebridge/docker-homebridge

★ 2,692⑂ 251

Homebridge Docker. HomeKit support for the impatient using Docker on x86_64, Raspberry Pi (ARM64). Includes ffmpeg + libfdk-aac.

About homebridge/docker-homebridge

homebridge/docker-homebridge is an open-source project on GitHub, mainly written in Shell. Homebridge Docker. HomeKit support for the impatient using Docker on x86_64, Raspberry Pi (ARM64). Includes ffmpeg + libfdk-aac. It currently holds 2,692 stars and 251 forks with 5 open issues, and was last pushed on 2026-09-26 (repository created 2017-03-12).

Project Overview

Git Homed tracks it on the Video Trending board and on the AI Video Trending list.

GitHub Repository Details

Repository homebridge/docker-homebridge · default branch latest · size 1680 KB · watchers 52 · source: GitHub REST API and repository README

README

Homebridge Docker

Release Stage 2 - Build and Push Docker Images Docker Pulls Discord

Official Docker image for Homebridge - Emulate the iOS HomeKit API on your network

---

📢 Important Update

We have migrated the official Homebridge Docker image from oznu/homebridge to homebridge/homebridge. Please update your configurations to use the new image location for the latest updates and features.

---

🚀 Quick Start

Prerequisites

⚠️ Compatibility Note: This image does not work with Docker Desktop for Mac or Windows due to networking limitations (details).

---

📦 Available Images

This is a multi-architecture image supporting x86_64, ARM32v7 (Raspberry Pi), and ARM64v8 platforms. Images are available with Ubuntu 24.04 (default) and Ubuntu 22.04 (for Synology compatibility) base images.

| Image Tag | Architectures | Base Image | Release Type | Description | |:----------|:--------------|:-----------|:-------------|:------------| | latest, ubuntu | amd64, arm32v7, arm64v8 | Ubuntu 24.04 | Stable | Production-ready with latest stable releases | | legacy | amd64, arm32v7, arm64v8 | Ubuntu 24.04 | Legacy | Production-ready with Homebridge 1.x stable releases | | synology | amd64, arm32v7, arm64v8 | Ubuntu 22.04 | Stable | Production-ready with latest stable releases | | beta | amd64, arm32v7, arm64v8 | Ubuntu 24.04 | Beta | Pre-release with beta versions for testing | | alpha | amd64, arm32v7, arm64v8 | Ubuntu 24.04 | Alpha | Early access with alpha versions for development |

---

🛠️ Installation

Using Docker Compose (Recommended)

Create a docker-compose.yml file:

services:
  homebridge:
    image: homebridge/homebridge:latest
    restart: always
    network_mode: host
    hostname: docker-desktop  # Optional: Set container hostname
    volumes:
  • ./volumes/homebridge:/homebridge
environment:
  • TZ=America/Toronto # Optional: Set your timezone
  • ENABLE_AVAHI=1 # Optional: Enable/disable Avahi (1=enabled, 0=disabled)
logging: driver: json-file options: max-size: '10m' max-file: '1' healthcheck: test: ["CMD-SHELL", "curl --fail http://localhost:8581 || exit 1"] interval: 60s retries: 5 start_period: 300s timeout: 2s

Start the container:

docker compose up -d

Using Docker CLI

docker run \
  --net=host \
  --name=homebridge \
  -e TZ=America/Toronto \
  -v $(pwd)/homebridge:/homebridge \
  homebridge/homebridge:latest

---

⚙️ Configuration

Required Parameters

| Parameter | Docker Compose | Docker CLI | Description | |:----------|:---------------|:-----------|:------------| | Network Mode | network_mode: host | --net=host | Required - Enables host networking for HomeKit discovery | | Volume Mount | volumes: | -v /path:/homebridge | Required - Persistent storage for config and plugins |

Optional Parameters

| Parameter | Docker Compose | Docker CLI | Default | Description | |:----------|:---------------|:-----------|:--------|:------------| | Hostname | hostname: homebridge | --hostname=homebridge | Container ID | Set custom hostname for the container | | Timezone | environment:
- TZ=America/Toronto | -e TZ=America/Toronto | UTC | Set timezone (list) | | Avahi mDNS | environment:
- ENABLE_AVAHI=1 | -e ENABLE_AVAHI=1 | 1 | Set to 0 to disable Avahi mDNS service |

Note: When running with ENABLE_AVAHI=0, you can mount the host's mDNS service to enable mDNS usage in the container:
> volumes:
- ./volumes/homebridge:/homebridge
- /var/run/dbus:/var/run/dbus # Mount host D-Bus socket
- /var/run/avahi-daemon/socket:/var/run/avahi-daemon/socket # Mount host Avahi socket

---

🖥️ Homebridge UI

Access the Homebridge UI at http://:8581

The UI allows you to:

https://github.com/homebridge/docker-homebridge/blob/HEAD/Homebridge UI Screenshot

---

🔧 Custom Startup Script

For advanced customization, use the Startup Script feature in the UI (Settings → Startup & Environment).

https://github.com/homebridge/docker-homebridge/blob/HEAD/Startup Script Settings

The startup.sh script:

Example:

#!/bin/sh

Install custom Node.js packages

npm install -g some-custom-package

Install Python dependencies

pip3 install some-python-library

Copy configuration from host

cp /homebridge/custom-config.json /etc/custom-config.json

https://github.com/homebridge/docker-homebridge/blob/HEAD/Sample Startup Script

---

📚 Step-by-Step Guides

---

🔄 Updates

Manual Updates

Pull the latest image and recreate your container:

docker compose pull
docker compose up -d

Automated Updates

⚠️ Not Recommended: Automated updates using tools like Watchtower are strongly discouraged and done at your own risk

In-Container Updates

Since the 2025-06-25 release, updates to

will be overwritten if the container is updated.

---

🎥 FFmpeg Support

This image includes FFmpeg with libfdk-aac audio support for camera streaming and video processing.

---

✅ Container Validation

This repository includes automated validation to ensure container builds work correctly.

Manual Validation

To validate a specific release:

1. Go to Actions 2. Select "Validate Docker Container" 3. Click "Run workflow" 4. Choose the release tag:

The validation workflow will: ---

🐛 Troubleshooting

1. FFmpeg Issues

FFmpeg with libfdk-aac audio support is included in this image. No additional installation required.

2. Container Won't Start on Older Raspbian

If you see errors like:

Node.js[445]: ../src/util.cc:188:double node::GetCurrentTimeInMicroseconds(): Assertion `(0) == (uv_gettimeofday(&tv))' failed.
s6-svscan: warning: unable to iopause: Operation not permitted

Your host OS needs to be updated. See #434 and #441 for solutions.

3. Get Help on Discord

Join the Official Homebridge Discord and ask in the #docker channel.

---

📄 License

Copyright (C) 2024 homebridge Copyright (C) 2017-2022 oznu

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

---

Made with ❤️ by the Homebridge community

GitHub Stars & Activity

2,692Stars
251Forks
5Open issues
ShellLanguage

GitHub Popularity

GitHub stars2,692
Forks251
Open issues5
Primary languageShell
LicenseGPL-3.0
Stars gained today0
Created2017-03-12
Last pushed2026-09-26

Trending History

Trending statusnot on today's boards

Related GitHub Projects

1
→
2

harry0703 / MoneyPrinterTurbo

Python★ 129,462⑂ 0
→
3

obsproject / obs-studio

C★ 77,251⑂ 0
→
4

calesthio / OpenMontage

Python★ 66,072⑂ 0
→
5

FFmpeg / FFmpeg

C★ 64,954⑂ 0
→
6

heygen-com / hyperframes

TypeScript★ 60,280⑂ 0
→
7

mifi / lossless-cut

TypeScript★ 44,442⑂ 0
→
8

mpv-player / mpv

C★ 37,325⑂ 0
→

More Trending Repositories