src.nth.io/

summaryrefslogtreecommitdiff
path: root/homebridge
diff options
context:
space:
mode:
Diffstat (limited to 'homebridge')
-rw-r--r--homebridge/defaults/main.yaml9
-rw-r--r--homebridge/handlers/main.yaml5
-rw-r--r--homebridge/meta/main.yaml4
-rw-r--r--homebridge/tasks/main.yaml54
-rw-r--r--homebridge/templates/homebridge.service.j216
5 files changed, 88 insertions, 0 deletions
diff --git a/homebridge/defaults/main.yaml b/homebridge/defaults/main.yaml
new file mode 100644
index 0000000..4e56379
--- /dev/null
+++ b/homebridge/defaults/main.yaml
@@ -0,0 +1,9 @@
+---
+
+homebridge_user: "homebridge"
+homebridge_groups: "video"
+homebridge_dir: "/home/{{homebridge_user}}"
+homebridge_restart_sec: "10"
+
+homebridge_pin: "031-45-154"
+homebridge_port: "51900"
diff --git a/homebridge/handlers/main.yaml b/homebridge/handlers/main.yaml
new file mode 100644
index 0000000..e711d82
--- /dev/null
+++ b/homebridge/handlers/main.yaml
@@ -0,0 +1,5 @@
+---
+
+- name: restart homebridge service
+ systemd: name="homebridge" state="restarted" daemon_reload="yes"
+ become: yes
diff --git a/homebridge/meta/main.yaml b/homebridge/meta/main.yaml
new file mode 100644
index 0000000..6116998
--- /dev/null
+++ b/homebridge/meta/main.yaml
@@ -0,0 +1,4 @@
+---
+
+dependencies:
+ - nodejs
diff --git a/homebridge/tasks/main.yaml b/homebridge/tasks/main.yaml
new file mode 100644
index 0000000..59f2f76
--- /dev/null
+++ b/homebridge/tasks/main.yaml
@@ -0,0 +1,54 @@
+---
+
+- name: create homebridge user
+ become: yes
+ user:
+ name: "{{homebridge_user}}"
+ comment: "Homebridge"
+ shell: "/bin/false"
+ home: "{{homebridge_dir}}"
+ groups: "{{homebridge_groups}}"
+ move_home: yes
+ notify: restart homebridge service
+
+- name: create homebridge directory
+ become: yes
+ file:
+ path: "{{homebridge_dir}}"
+ state: "directory"
+ owner: "{{homebridge_user}}"
+ group: "{{homebridge_user}}"
+ mode: "0755"
+
+- name: install homebridge apt deps
+ become: yes
+ apt: name="{{homebridge_apt_packages}}"
+
+- name: install homebridge
+ become: yes
+ npm: name="homebridge" global="yes"
+ notify: restart homebridge service
+
+- name: install platform accessories
+ become: yes
+ npm: name="{{item}}" global="yes"
+ with_items: "{{homebridge_npm_packages}}"
+ notify: restart homebridge service
+
+- name: configure homebridge
+ become: yes
+ template:
+ src: "{{homebridge_config_template}}"
+ dest: "{{homebridge_dir}}/config.json"
+ notify: restart homebridge service
+
+- name: configure 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"
diff --git a/homebridge/templates/homebridge.service.j2 b/homebridge/templates/homebridge.service.j2
new file mode 100644
index 0000000..a20ff99
--- /dev/null
+++ b/homebridge/templates/homebridge.service.j2
@@ -0,0 +1,16 @@
+# {{ansible_managed}}
+
+[Unit]
+Description=Homebridge
+
+[Service]
+User={{homebridge_user}}
+Group={{homebridge_user}}
+Restart=always
+RestartSec={{homebridge_restart_sec}}
+
+WorkingDirectory={{homebridge_dir}}
+ExecStart=/usr/bin/node /opt/{{nodejs_dir}}/bin/homebridge -U {{homebridge_dir}}
+
+[Install]
+WantedBy=default.target