-
-
Notifications
You must be signed in to change notification settings - Fork 2k
Install Homebridge on macOS
This guide provides instructions for installing Homebridge on macOS as a service that will automatically start on boot.
There are two ways to run Homebridge on macOS:
We recommend using the Homebridge VM Image for a streamlined experience. This provides:
- Pre-configured environment with Homebridge, Node.js, and all dependencies
- Automatic updates and easier maintenance
- Better isolation from your main system
- Works on both Intel and Apple Silicon Macs
- Simpler backup and restore process
View Homebridge VM Image Installation Instructions →
The VM Image supports UTM (recommended for macOS) and VirtualBox.
The instructions below describe installing Homebridge directly on your macOS system. This method is ideal for:
- Users who want Homebridge running directly on their Mac
- Users who prefer not to use virtualization
- Advanced users who need direct system access
- Users with specific hardware requirements or plugins that need native access
- Homebridge on macOS
Before you get started, make sure you have the following:
- A computer running a recent version of macOS that is always powered on
- Access to the Terminal app (found in Applications > Utilities or via Spotlight search)
- The ability to copy and paste commands from this guide into Terminal
- This guide is intended for machines that do not yet have Homebridge installed. Please remove any existing installations of Homebridge before you get started
- Apple Silicon / M1/M2/M3 devices are fully supported
Homebridge requires Node.js installed on your system to run. Download the LTS version of Node.js (v22.18.0) and run the installer with all the default options selected:
From a Terminal window, test that Node.js is working:
# Test node.js is working
node -v
# Test npm is working
npm -vInstall Homebridge and the Homebridge UI using the following command:
sudo npm install -g --unsafe-perm homebridge homebridge-config-ui-xTo set up Homebridge as a service that will start on boot, use the provided hb-service command:
sudo hb-service installThis command will configure everything required to set up Homebridge and the Homebridge UI as a service.
The Homebridge service will be set up using the user account you are currently logged in as and does not require sudo/root privileges once set up.
The Homebridge config.json can be found under ~/.homebridge and will be created automatically if it does not already exist.
Log in to the web interface by navigating to http://localhost:8581.
The Homebridge UI web interface allows you to install, remove and update plugins, modify the Homebridge config.json, and manage other aspects of your Homebridge service.
Review the Configuration Reference section below for important information about managing your installation.
To remove the Homebridge service, run:
sudo hb-service uninstallTo remove Homebridge and the Homebridge UI, run:
sudo npm uninstall --location=global homebridge homebridge-config-ui-x💡 Homebridge now supports Child Bridges which are an easier-to-manage alternative to running multiple instances.
Some users prefer to run multiple instances of Homebridge.
The hb-service command makes this easy via the --service-name flag.
See the hb-service documentation for instructions.
It is recommended to run Homebridge on the current stable LTS version of Node.js. You can update Node.js to the current LTS version by running:
sudo hb-service update-node This table contains important information about your setup. Use this as a reference when configuring or troubleshooting your environment.
| File Location / Command | |
|---|---|
| Config File Path | ~/.homebridge/config.json |
| Storage Path | ~/.homebridge |
| Restart Command | sudo hb-service restart |
| Stop Command | sudo hb-service stop |
| Start Command | sudo hb-service start |
| View Logs Command | hb-service logs |
| Launchctl Service File | /Library/LaunchDaemons/com.homebridge.server.plist |
Click here for the configuration reference for setups done before January 2020
| File Location / Command | |
|---|---|
| Config File Path | ~/.homebridge/config.json |
| Storage Path | ~/.homebridge |
| Restart Command | Run the stop and start commands |
| Stop Command | launchctl unload ~/Library/LaunchAgents/com.homebridge.server.plist |
| Start Command | launchctl load ~/Library/LaunchAgents/com.homebridge.server.plist |
| View Logs Command | tail -f ~/.homebridge/homebridge.log |
| Launchctl Service File | ~/Library/LaunchAgents/com.homebridge.server.plist |
macOS Sequoia introduced new functionality to control which applications have access to the network. If you experience connection problems, ensure that 'node' has access to the local network in System Settings > Privacy & Security > Local network. If there is no switch for 'node', try reinstalling Node.js.
Homebridge logs may contain messages like: Error: connect EHOSTUNREACH 192.168.0.72:80
-
Do NOT generate the certificate with Keychain Access. It will export certificate/key combinations in .p12 format with the RC2-40-CBC Algorithm which is NOT supported by OpenSSL 3.x
-
Install Homebrew if you haven't already:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" -
Use Homebrew to install OpenSSL (currently version 3.4.0):
brew install openssl
-
Generate the key and certificate signing request (replace
My-Server-Namewith your server name, using hyphens instead of spaces):openssl req -new -newkey rsa:2048 -nodes -keyout homebridge.key -out homebridge.csr -subj "/CN=My-Server-Name.local" -
Generate a certificate with your desired validity period:
openssl x509 -req -days 365 -in homebridge.csr -signkey homebridge.key -out homebridge.crt
-
Convert the certificate and private key to a p12 file (replace
MY_SECRETwith a secure passphrase):openssl pkcs12 -export -out homebridge.p12 -inkey homebridge.key -in homebridge.crt -name "Homebridge Certificate" -passout pass:MY_SECRET -
Change the owner and group of your p12 file to match the account Homebridge runs under:
chown myusername:staff homebridge.p12
-
Change the permissions of your p12 file:
chmod 600 homebridge.p12
-
In the Homebridge UI, click the three vertical dots on the upper right and select Settings
-
Select UI Advanced Settings
-
Expand the SSL Settings accordion
-
In the Path To PKCS#12 Certificate field, enter the full path to the newly created p12 file
-
In the PKCS#12 Certificate Passphrase field, enter the passphrase you used in place of
MY_SECRETabove -
Click Save
-
Do not restart the server when asked
-
On the Settings page, click the button next to JSON Config
-
In the JSON under "platforms", find the object in the array called "Config". Change its "port" value to 443 (as long as this does not conflict with anything else running on your Mac)
-
Click the Save button (floppy disk icon)
-
Restart the Homebridge UI
-
Access your Homebridge server at
https://YOUR_SERVERS_IP_ADDRESS
- For VM Image installation, see the Homebridge VM Image Wiki
- For general Homebridge help, visit the Homebridge Wiki
- Join the Homebridge Discord community
- Raspberry Pi
- Debian, Ubuntu
- CentOS, Fedora, Red Hat
- Arch, Manjaro
- macOS
- Windows 10 / 11 (Hyper-V)
- Docker
- Virtual Machine
- Synology DSM 7
- Other Platforms
- Basic Troubleshooting
- Backup and Restore
- Child Bridges
- Config File
- Connect To HomeKit
- FFmpeg for Homebridge
- HomeKit Glossary of Terms
- iOS Homemanager App
- mDNS Options
- Remote Access
- Useful Links
- Basic Troubleshooting
- Config Options
- Enabling Accessory Control
- Enabling UI with Docker
- Homebridge Service Command
- Manual Configuration
- Reverse Proxy: Apache
- Reverse Proxy: Nginx and SSL
- Standalone Mode
- Swap From Standalone To Service Mode
- Developer Docs
- API Reference
- Plugin Templates
- Other Links (Internal)
- Other Links (External)