This is for a fresh install of Homebridge UI with auto-start on reboot or error.

If you are trying to convert an existing install, this step-by-step will not work for you, and you’ll need to modify it to suit your needs.

  1. Edit your Homebridge config to enable standalone mode:
    sudo nano /var/homebridge/config.json
    …and paste this into it.
  2. Create the executable service:
    sudo nano /etc/systemd/system/homebridge-config-ui-x.service
    …and paste this into it.
  3. Reload all of the daemons
    sudo systemctl daemon-reload
  4. Enable the Homebridge service to start:
    sudo systemctl enable homebridge-config-ui-x
  5. Start Homebridge yourself:
    sudo systemctl start homebridge-config-ui-x

Platform in /var/homebridge/config.json:

"platforms": [
    {
      "platform": "config",
      "name": "Config",
      "port": 8080,
      "standalone": true,
      "restart": "sudo -n systemctl restart homebridge homebridge-config-ui-x"
   }
]

Contents of /etc/systemd/system/homebridge-config-ui-x.service:

[Unit]
Description=Homebridge Config UI X
After=syslog.target network-online.target

[Service]
Type=simple
User=homebridge
EnvironmentFile=/etc/default/homebridge
ExecStart=/usr/bin/homebridge-config-ui-x $HOMEBRIDGE_OPTS
Restart=on-failure
RestartSec=3
KillMode=process
CapabilityBoundingSet=CAP_IPC_LOCK CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_RAW CAP_SETGID CAP_SETUID CAP_SYS_CHROOT CAP_CHOWN CAP_FOWNER CAP_DAC_OVERRIDE CAP_AUDIT_WRITE CAP_SYS_ADMIN
AmbientCapabilities=CAP_NET_RAW

[Install]
WantedBy=multi-user.target

This is for a fresh install of Homebridge with auto-start on reboot or error.

If you are trying to convert an existing install, this step-by-step will not work for you, and you’ll need to modify it to suit your needs.

  1. Create the Default Settings file:
    sudo nano /etc/default/homebridge
    …and paste this into it.
  2. Create the executable service:
    sudo nano /etc/systemd/system/homebridge.service
    …and paste this into it.
  3. Create a user to run the service:
    sudo useradd --system homebridge
  4. Create the directory for Homebridge to live in:
    sudo mkdir /var/homebridge
  5. Open up the directory permissions:
    sudo chmod -R 0777 /var/homebridge
  6. Reload all of the daemons
    sudo systemctl daemon-reload
  7. Enable the Homebridge service to start:
    sudo systemctl enable homebridge
  8. Start Homebridge yourself:
    sudo systemctl start homebridge

Troubleshooting:

  • journalctl -f -u homebridge to view the logs
  • systemctl status homebridge to check the service status.

Contents of /etc/defaults/homebridge:

# Defaults / Configuration options for homebridge
# The following settings tells homebridge where to find the config.json file and where to persist the data (i.e. pairing and others)
HOMEBRIDGE_OPTS=-U /var/homebridge

# If you uncomment the following line, homebridge will log more
# You can display this via systemd’s journalctl: journalctl -f -u homebridge
# DEBUG=*

Contents of /etc/systemd/system/homebridge.service:

[Unit]
Description=Node.js HomeKit Server
After=syslog.target network-online.target

[Service]
Type=simple
User=homebridge
EnvironmentFile=/etc/default/homebridge
ExecStart=/usr/bin/homebridge $HOMEBRIDGE_OPTS
Restart=on-failure
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target

At 4:33am this morning, a lady passed our house, slammed on her brakes, threw her car in reverse, threw her hazards on, parked facing oncoming traffic, on a state highway, to steal 2 steel goats we had on our front lawn.