src.nth.io/

summaryrefslogtreecommitdiff
path: root/homebridge/tasks
diff options
context:
space:
mode:
authorLuke Hoersten <[email protected]>2026-07-31 14:31:51 -0500
committerLuke Hoersten <[email protected]>2026-07-31 14:31:51 -0500
commite29fb72f3239e0d5317da659ec96de812247ce67 (patch)
tree2919a743b4b103276bd4d893e0019928ef006f1b /homebridge/tasks
parent8fa841b96947c05196cd3b102e3d2b68b7352a42 (diff)
homebridge: rebuild on apt nodejs and npm
26.04 ships nodejs 22, so no repo.homebridge.io vendor repo (its package bundled a private node runtime). npm installs homebridge, the role provides the unit, and the previously undefined dir and package vars get defaults.
Diffstat (limited to 'homebridge/tasks')
-rw-r--r--homebridge/tasks/main.yaml50
1 files changed, 32 insertions, 18 deletions
diff --git a/homebridge/tasks/main.yaml b/homebridge/tasks/main.yaml
index fd6e2c1..b9a4f70 100644
--- a/homebridge/tasks/main.yaml
+++ b/homebridge/tasks/main.yaml
@@ -1,31 +1,38 @@
---
-- name: add homebridge apt key
+# 26.04 ships nodejs 22 in apt, so no repo.homebridge.io vendor repo (its
+# package bundled a private node runtime). homebridge itself is an npm
+# package; apt npm puts global installs under /usr/local.
+- name: install nodejs
become: yes
- get_url:
- url: "https://repo.homebridge.io/KEY.gpg"
- dest: "/etc/apt/trusted.gpg.d/homebridge.asc"
- mode: "0644"
+ apt:
+ name:
+ - "nodejs"
+ - "npm"
-- name: add homebridge apt repo
+- name: add homebridge user
become: yes
- apt_repository: repo="deb [signed-by=/etc/apt/trusted.gpg.d/homebridge.asc] https://repo.homebridge.io stable main"
+ user: name="homebridge" shell="/bin/false" system="yes" create_home="no"
-- name: apt install homebridge
+- name: create homebridge dir
become: yes
- apt: name="homebridge"
- notify: restart homebridge service
+ file:
+ path: "{{homebridge_dir}}"
+ state: "directory"
+ owner: "homebridge"
+ group: "homebridge"
+ mode: "0755"
-- name: install homebridge apt deps
+- name: npm install homebridge
become: yes
- apt: name="{{homebridge_apt_packages}}"
+ npm: name="homebridge" global="yes"
notify: restart homebridge service
-# - name: install platform accessories
-# become: yes
-# npm: name="{{item}}" global="yes"
-# loop: "{{homebridge_npm_packages}}"
-# notify: restart homebridge service
+- name: install platform accessories
+ become: yes
+ npm: name="{{item}}" global="yes"
+ loop: "{{homebridge_npm_packages}}"
+ notify: restart homebridge service
# - name: configure homebridge
# become: yes
@@ -34,6 +41,13 @@
# dest: "{{homebridge_dir}}/config.json"
# notify: restart homebridge service
+- name: install systemd service
+ become: yes
+ template:
+ src: "homebridge.service.j2"
+ dest: "/lib/systemd/system/homebridge.service"
+ notify: restart homebridge service
+
- name: ensure homebridge is started
become: yes
- systemd: name="homebridge.service" enabled="yes" state="started"
+ systemd: name="homebridge.service" enabled="yes" state="started" daemon_reload="yes"