{"id":13563550,"url":"https://github.com/homebridge/docker-homebridge","last_synced_at":"2026-06-05T13:00:51.542Z","repository":{"id":37406293,"uuid":"84700739","full_name":"homebridge/docker-homebridge","owner":"homebridge","description":"Homebridge Docker. HomeKit support for the impatient using Docker on x86_64, Raspberry Pi (ARM64). Includes ffmpeg + libfdk-aac. ","archived":false,"fork":false,"pushed_at":"2026-05-31T10:55:45.000Z","size":1530,"stargazers_count":2692,"open_issues_count":8,"forks_count":255,"subscribers_count":54,"default_branch":"latest","last_synced_at":"2026-05-31T12:15:12.500Z","etag":null,"topics":["aarch64","alpine-linux","arm","arm6","arm64","armhf","armv6","docker","docker-homebridge","ffmpeg","homebridge","homebridge-docker","homekit","libfdk-aac","raspberry-pi","rpi","siri","x86-64"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/homebridge/homebridge/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/homebridge.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":null},"created_at":"2017-03-12T04:50:33.000Z","updated_at":"2026-05-31T10:39:43.000Z","dependencies_parsed_at":"2023-02-08T05:45:52.814Z","dependency_job_id":"f9968ac7-b266-4539-ab9d-8282e512b826","html_url":"https://github.com/homebridge/docker-homebridge","commit_stats":{"total_commits":440,"total_committers":21,"mean_commits":"20.952380952380953","dds":0.125,"last_synced_commit":"733b9340781ca64cf7796f6aea8cd3cc5193024b"},"previous_names":["oznu/docker-homebridge"],"tags_count":395,"template":false,"template_full_name":null,"purl":"pkg:github/homebridge/docker-homebridge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/homebridge%2Fdocker-homebridge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/homebridge%2Fdocker-homebridge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/homebridge%2Fdocker-homebridge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/homebridge%2Fdocker-homebridge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/homebridge","download_url":"https://codeload.github.com/homebridge/docker-homebridge/tar.gz/refs/heads/latest","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/homebridge%2Fdocker-homebridge/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33942436,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-05T02:00:06.157Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aarch64","alpine-linux","arm","arm6","arm64","armhf","armv6","docker","docker-homebridge","ffmpeg","homebridge","homebridge-docker","homekit","libfdk-aac","raspberry-pi","rpi","siri","x86-64"],"created_at":"2024-08-01T13:01:20.526Z","updated_at":"2026-06-05T13:00:51.473Z","avatar_url":"https://github.com/homebridge.png","language":"Shell","funding_links":[],"categories":["HarmonyOS","Shell","硬件_其他"],"sub_categories":["Windows Manager","资源传输下载"],"readme":"\u003cdiv align=\"center\"\u003e\n\n# Homebridge Docker\n\n[![Release Stage 2 - Build and Push Docker Images](https://github.com/homebridge/docker-homebridge/actions/workflows/release-stage-2_build_and_push_docker_images.yml/badge.svg)](https://github.com/homebridge/docker-homebridge/actions/workflows/release-stage-2_build_and_push_docker_images.yml)\n[![Docker Pulls](https://img.shields.io/docker/pulls/homebridge/homebridge.svg)](https://hub.docker.com/r/homebridge/homebridge/)\n[![Discord](https://img.shields.io/discord/432663330281226270?color=728ED5\u0026logo=discord\u0026label=discord)](https://discord.gg/Cmq8a44)\n\n**Official Docker image for [Homebridge](https://github.com/homebridge/homebridge)** - Emulate the iOS HomeKit API on your network\n\n\u003c/div\u003e\n\n---\n\n## 📢 Important Update\n\nWe have migrated the official Homebridge Docker image from **`oznu/homebridge`** to **`homebridge/homebridge`**.  \nPlease update your configurations to use the new image location for the latest updates and features.\n\n---\n\n## 🚀 Quick Start\n\n### Prerequisites\n- Docker Engine with networking access\n- Host network mode support (**required for HomeKit**)\n\n\u003e ⚠️ **Compatibility Note**: This image does **not** work with Docker Desktop for Mac or Windows due to networking limitations ([details](https://github.com/homebridge/docker-homebridge/issues/570)).\n\n---\n\n## 📦 Available Images\n\nThis 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.\n\n| Image Tag | Architectures | Base Image | Release Type | Description |\n|:----------|:--------------|:-----------|:-------------|:------------|\n| `latest`, `ubuntu` | amd64, arm32v7, arm64v8 | Ubuntu 24.04 | **Stable** | Production-ready with latest stable releases |\n| `legacy` | amd64, arm32v7, arm64v8 | Ubuntu 24.04 | **Legacy** | Production-ready with Homebridge 1.x stable releases |\n| `synology` | amd64, arm32v7, arm64v8 | Ubuntu 22.04 | **Stable** | Production-ready with latest stable releases |\n| `beta` | amd64, arm32v7, arm64v8 | Ubuntu 24.04 | **Beta** | Pre-release with beta versions for testing |\n| `alpha` | amd64, arm32v7, arm64v8 | Ubuntu 24.04 | **Alpha** | Early access with alpha versions for development |\n\n---\n\n## 🛠️ Installation\n\n### Using Docker Compose (Recommended)\n\nCreate a `docker-compose.yml` file:\n\n```yaml\nservices:\n  homebridge:\n    image: homebridge/homebridge:latest\n    restart: always\n    network_mode: host\n    hostname: docker-desktop  # Optional: Set container hostname\n    volumes:\n      - ./volumes/homebridge:/homebridge\n    environment:\n      - TZ=America/Toronto  # Optional: Set your timezone\n      - ENABLE_AVAHI=1      # Optional: Enable/disable Avahi (1=enabled, 0=disabled)\n    logging:\n      driver: json-file\n      options:\n        max-size: '10m'\n        max-file: '1'\n    healthcheck:\n      test: [\"CMD-SHELL\", \"curl --fail http://localhost:8581 || exit 1\"]\n      interval: 60s\n      retries: 5\n      start_period: 300s\n      timeout: 2s\n```\n\nStart the container:\n\n```bash\ndocker compose up -d\n```\n\n### Using Docker CLI\n\n```bash\ndocker run \\\n  --net=host \\\n  --name=homebridge \\\n  -e TZ=America/Toronto \\\n  -v $(pwd)/homebridge:/homebridge \\\n  homebridge/homebridge:latest\n```\n\n---\n\n## ⚙️ Configuration\n\n### Required Parameters\n\n| Parameter | Docker Compose | Docker CLI | Description |\n|:----------|:---------------|:-----------|:------------|\n| Network Mode | `network_mode: host` | `--net=host` | **Required** - Enables host networking for HomeKit discovery |\n| Volume Mount | `volumes:` | `-v /path:/homebridge` | **Required** - Persistent storage for config and plugins |\n\n### Optional Parameters\n\n| Parameter | Docker Compose | Docker CLI | Default | Description |\n|:----------|:---------------|:-----------|:--------|:------------|\n| Hostname | `hostname: homebridge` | `--hostname=homebridge` | Container ID | Set custom hostname for the container |\n| Timezone | `environment:`\u003cbr/\u003e`- TZ=America/Toronto` | `-e TZ=America/Toronto` | `UTC` | Set timezone ([list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)) |\n| Avahi mDNS | `environment:`\u003cbr/\u003e`- ENABLE_AVAHI=1` | `-e ENABLE_AVAHI=1` | `1` | Set to `0` to disable Avahi mDNS service |\n\n\u003e **Note**: When running with `ENABLE_AVAHI=0`, you can mount the host's mDNS service to enable mDNS usage in the container:\n\u003e ```yaml\n\u003e volumes:\n\u003e   - ./volumes/homebridge:/homebridge\n\u003e   - /var/run/dbus:/var/run/dbus  # Mount host D-Bus socket\n\u003e   - /var/run/avahi-daemon/socket:/var/run/avahi-daemon/socket  # Mount host Avahi socket\n\u003e ```\n\n---\n\n## 🖥️ Homebridge UI\n\nAccess the **Homebridge UI** at `http://\u003cyour-server-ip\u003e:8581`\n\nThe UI allows you to:\n- ✅ Install, update, and remove plugins\n- ✅ Edit Homebridge configuration\n- ✅ View logs and restart Homebridge\n- ✅ Manage accessories and bridges\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"700px\" src=\"https://user-images.githubusercontent.com/3979615/71886653-b16d3f80-3190-11ea-9ff8-49dc4ae4fff0.png\" alt=\"Homebridge UI Screenshot\"\u003e\n\u003c/p\u003e\n\n---\n\n## 🔧 Custom Startup Script\n\nFor advanced customization, use the **Startup Script** feature in the UI (`Settings` → `Startup \u0026 Environment`).\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"600px\" src=\"https://github.com/homebridge/docker-homebridge/blob/latest/assets/settings-startup-script.png\" alt=\"Startup Script Settings\"\u003e\n\u003c/p\u003e\n\nThe `startup.sh` script:\n- Runs on every container start\n- Persists across container recreations\n- Can install packages, copy files, or execute custom commands\n\n**Example:**\n\n```bash\n#!/bin/sh\n\n# Install custom Node.js packages\nnpm install -g some-custom-package\n\n# Install Python dependencies\npip3 install some-python-library\n\n# Copy configuration from host\ncp /homebridge/custom-config.json /etc/custom-config.json\n```\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"600px\" src=\"https://github.com/homebridge/docker-homebridge/blob/latest/assets/sample-startup-script.png\" alt=\"Sample Startup Script\"\u003e\n\u003c/p\u003e\n\n---\n\n## 📚 Step-by-Step Guides\n\n- [Running Homebridge with Docker on Linux](https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Docker)\n- [Running Homebridge on Synology NAS](https://github.com/homebridge/docker-homebridge/wiki/Homebridge-on-Synology)\n- [Running Homebridge on Unraid](https://github.com/homebridge/docker-homebridge/wiki/Homebridge-on-Unraid)\n\n---\n\n## 🔄 Updates\n\n### Manual Updates\n\nPull the latest image and recreate your container:\n\n```bash\ndocker compose pull\ndocker compose up -d\n```\n\n### Automated Updates\n\n\u003e ⚠️ **Not Recommended**: Automated updates using tools like Watchtower are **strongly discouraged** and done at your own risk\n\n### In-Container Updates\n\nSince the `2025-06-25` release, updates to  \n- Homebridge core\n- Homebridge UI\n- Node.js runtime\n\nwill be overwritten if the container is updated.\n\n---\n\n## 🎥 FFmpeg Support\n\nThis image includes **FFmpeg** with `libfdk-aac` audio support for camera streaming and video processing.\n\n---\n\n## ✅ Container Validation\n\nThis repository includes automated validation to ensure container builds work correctly.\n\n### Manual Validation\n\nTo validate a specific release:\n\n1. Go to [Actions](https://github.com/homebridge/docker-homebridge/actions)\n2. Select **\"Validate Docker Container\"**\n3. Click **\"Run workflow\"**\n4. Choose the release tag:\n   - `latest` - Stable release\n   - `beta` - Beta pre-release\n   - `alpha` - Alpha early release\n\nThe validation workflow will:\n- ✅ Start the container and verify it runs\n- ✅ Check Homebridge UI accessibility on port 8581\n- ✅ Verify Homebridge service starts with version detection\n- ✅ Validate container health checks\n- ✅ Extract and validate the Docker manifest\n\n---\n\n## 🐛 Troubleshooting\n\n### 1. FFmpeg Issues\n\nFFmpeg with `libfdk-aac` audio support is **included** in this image. No additional installation required.\n\n### 2. Container Won't Start on Older Raspbian\n\nIf you see errors like:\n\n```\nNode.js[445]: ../src/util.cc:188:double node::GetCurrentTimeInMicroseconds(): Assertion `(0) == (uv_gettimeofday(\u0026tv))' failed.\n```\n\n```\ns6-svscan: warning: unable to iopause: Operation not permitted\n```\n\nYour host OS needs to be updated. See [#434](https://github.com/homebridge/docker-homebridge/issues/434) and [#441](https://github.com/homebridge/docker-homebridge/issues/441) for solutions.\n\n### 3. Get Help on Discord\n\nJoin the [Official Homebridge Discord](https://discord.gg/Cmq8a44) and ask in the [#docker](https://discord.gg/Cmq8a44) channel.\n\n---\n\n## 📄 License\n\nCopyright (C) 2024 homebridge  \nCopyright (C) 2017-2022 oznu\n\nThis 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.\n\nThis 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](./LICENSE) for more details.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**Made with ❤️ by the Homebridge community**\n\n\u003c/div\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhomebridge%2Fdocker-homebridge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhomebridge%2Fdocker-homebridge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhomebridge%2Fdocker-homebridge/lists"}