Skip to content

Config Options

Ben edited this page Nov 1, 2026 · 14 revisions

These can be set in config.json under the config platform.

Most of these options can also be changed from the Settings page in the UI, which is the easiest way. You only need to edit config.json by hand if you cannot reach the UI.

A minimal config platform block looks like this:

"platforms": [
    {
      "platform": "config",
      "name": "Config",
      "port": 8581
    }
]

accessoryControl

  • Type: object
  • Default: undefined
  • Description: Settings for controlling accessories from the UI. Contains:
    • debug (boolean) - turn on extra logging for accessory control.
    • instanceBlacklist (array of strings) - the usernames (for example 0E:12:34:56:78:9A) of bridges the UI should not control. You can set this in Settings > Startup & Environment > Accessory Control Lists. See Enabling Accessory Control.

allowFrameAncestors

  • Type: string or array of strings
  • Default: undefined
  • Description: Extra website addresses that are allowed to show the UI inside a frame (for example on a home dashboard). By default only the UI itself can do this. A string can list several addresses separated by spaces or commas.

auth

  • Type: string
  • Default: form
  • Permitted Values: form, none
  • Description: The authentication method the UI should use. form asks for a username and password. none turns off the login page.

debug

  • Type: boolean
  • Default: false
  • Description: Turn on debug logging for the UI.

disableServerMetricsMonitoring

  • Type: boolean
  • Default: false
  • Description: When set to true, the UI will not collect or show CPU and memory stats. In the UI this is the Enable Server Metric Monitoring setting (turned the other way round).

enableMdnsAdvertise

  • Type: boolean
  • Default: false
  • Description: Advertise the UI on your local network using mDNS (Bonjour), so other devices can find it as a web service.

homebridgePackagePath

  • Type: string
  • Default: undefined
  • Description: The path where the Homebridge package is installed. If the Homebridge package is installed globally this is not required.

homebridgeUpdatePolicy, homebridgeUiUpdatePolicy and nodeUpdatePolicy

  • Type: string

  • Default: all

  • Permitted Values: all, beta, major, none (nodeUpdatePolicy does not have beta)

  • Description: When the UI shows update notifications for Homebridge, the Homebridge UI and Node.js.

    • all - show stable updates.
    • beta - also show beta releases.
    • major - hide new major versions (for example v1 to v2), but still show smaller updates.
    • none - hide all update notifications.

    You can set these from the Update Preferences section on the Status page. Click the Homebridge, Homebridge UI or Node.js version in the Update Information widget to open it.

host

  • Type: string
  • Default: :: (or 0.0.0.0 if IPv6 is not available)
  • Description: The IP address of the interface the UI should listen on. By default the UI will listen on all interfaces.

lang

  • Type: string
  • Default: auto
  • Description: Set the language the UI should use. Must be auto or one of these supported languages (for example en, de or pt-BR). If set to auto, the browser's language setting will be used.

lightingMode

  • Type: string
  • Default: auto
  • Permitted Values: auto, light, dark
  • Description: Use light or dark mode. auto follows your device's setting.

linux

  • Type: object

  • Default: undefined

  • Description: Linux only. Custom commands for the Shutdown OS and Restart OS options in the UI. Contains:

    • shutdown (string) - the command used to shut down the server.
    • restart (string) - the command used to restart the server.

    If a command is not set, the process will stop with an error exit code instead.

log

  • Type: object

  • Default: undefined

  • Description: Controls the size of the Homebridge log file. Contains:

    • maxSize (integer) - the largest the log file can get, in bytes, before it is cut down. The default is 1000000 (about 1 MB). Set to -1 to never cut down the log.
    • truncateSize (integer) - the size, in bytes, the log is cut down to. The default is 200000 (about 0.2 MB).

    The older method, path, service and command log options no longer do anything. The UI sets up the log viewer for you.

menuMode

  • Type: string
  • Default: default
  • Permitted Values: default, freeze
  • Description: How the side menu works. freeze keeps the menu closed on desktop screens.

name

  • Type: string
  • Default: Config
  • Description: The name of this config block.

platform

  • Required
  • Type: string
  • Default: undefined
  • Permitted Values: config
  • Description: Must be set to config.

plugins

  • Type: object
  • Default: undefined
  • Description: Plugin settings used by the UI. The UI fills these in for you when you use the plugin menus. Contains:
    • hideUpdatesFor (array of strings) - plugin names to hide update notifications for.
    • showBetasFor (array of strings) - plugin names that should be offered beta releases.
    • hideChildBridgeSetupFor (array of strings) - plugin names that should not show the "set up child bridge" suggestion.

port

  • Type: integer
  • Default: 8581 when hb-service creates your config. If the option is missing, the UI uses 8080.
  • Description: The port the UI should listen on. To use a different port when you set up the service, pass --port to hb-service install.

proxyHost

  • Type: string
  • Default: undefined
  • Description: The host and port, for example example.com:8080, you will be accessing the UI on. This is only required if you are running the UI behind a reverse proxy and are not passing through the host from the browser.

restrictLogsToAdmins

  • Type: boolean
  • Default: false
  • Description: When set to true, only administrator users can see the Homebridge log. By default every user who can log in to the UI can see it. Logs can contain passwords or access tokens, so you may want to turn this on if you have non-admin users.

scheduledBackupDisable

  • Type: boolean
  • Default: false
  • Description: Set to true to turn off the daily scheduled backups.

scheduledBackupPath

  • Type: string
  • Default: backups/instance-backups inside your Homebridge storage folder
  • Description: The full path to an existing folder where the daily backup files should be saved. The user Homebridge runs as MUST be able to read and write to this folder.

scheduledRestartCron

  • Type: string
  • Default: undefined
  • Description: Restart Homebridge on a schedule, using a cron expression in your local time zone. For example, 0 4 * * * restarts Homebridge every day at 4am. Leave it out to turn off scheduled restarts.

sessionTimeout

  • Type: integer
  • Default: 28800
  • Description: The number of seconds a login session will last for. The default is equal to 8 hours. The smallest value allowed is 600 (10 minutes).

sessionTimeoutInactivityBased

  • Type: boolean
  • Default: false
  • Description: When set to true, your session is refreshed each time you move between pages, so you are not logged out while you are using the UI.

ssl

  • Type: object
  • Default: undefined
  • Description: Turn on HTTPS for the UI. You can also do this from Settings > Enable HTTPS. See enabling ssl.

temp

  • Type: string
  • Default: undefined
  • Description: The path to a file containing your CPU's current temperature. Use this if the UI cannot find the CPU temperature by itself.

tempUnits

  • Type: string
  • Default: c
  • Permitted Values: c, f
  • Description: The temperature units that will be used in the UI.

terminal

  • Type: object
  • Default: undefined
  • Description: Settings for the terminal and the log viewer. You can change these in Settings > Logging & Terminal. Contains:
    • persistence (boolean) - keep the terminal session running when you leave the page.
    • hideWarning (boolean) - hide the warning shown before a terminal session is closed.
    • bufferSize (integer) - how much terminal output to keep for a kept session.
    • fontSize and fontWeight - the text size and weight.
    • lightingMode (light or dark) - the lighting mode for the terminal and log viewer.

theme

  • Type: string
  • Default: deep-purple
  • Permitted Values: orange, red, pink, purple, deep-purple, indigo, blue, blue-grey, cyan, green, teal, grey, brown
  • Description: The color theme the UI should use.

wallpaper

  • Type: string
  • Default: undefined
  • Description: The path to an image to show on the UI login page. If this is not set, the default login wallpaper is used. You can upload a wallpaper from Settings > Wallpaper.

Installation

Homebridge Help

Homebridge UI Help

Versioning

Plugins

Raspberry Pi Image
Docker
Synology Package
HAP-NodeJS

Developers

Clone this wiki locally