]> the.earth.li Git - mqttdeck.git/commitdiff
Add udev/systemd service files to start on device insertion v0.1.0
authorJonathan McDowell <noodles@earth.li>
Sat, 10 Jun 2023 17:17:26 +0000 (18:17 +0100)
committerJonathan McDowell <noodles@earth.li>
Sat, 10 Jun 2023 17:17:26 +0000 (18:17 +0100)
debian/mqttdeck.service [new file with mode: 0644]
debian/mqttdeck.udev [new file with mode: 0644]

diff --git a/debian/mqttdeck.service b/debian/mqttdeck.service
new file mode 100644 (file)
index 0000000..c3f94a5
--- /dev/null
@@ -0,0 +1,17 @@
+[Unit]
+Description=Stream Deck to MQTT bridge daemon
+After=network-online.target
+
+[Service]
+User=mqttdeck
+ExecStart=/usr/sbin/mqttdeck
+
+MemoryDenyWriteExecute=true
+NoNewPrivileges=yes
+PrivateTmp=true
+ProtectControlGroups=true
+ProtectHome=true
+ProtectKernelModules=true
+ProtectKernelTunables=true
+RestrictRealtime=true
+RestrictNamespaces=true
diff --git a/debian/mqttdeck.udev b/debian/mqttdeck.udev
new file mode 100644 (file)
index 0000000..ac0ce39
--- /dev/null
@@ -0,0 +1,30 @@
+# udev rules to allow mqttdeck user to talk to the hidraw device
+
+ACTION!="add|change", GOTO="mqttdeck_rules_end"
+SUBSYSTEM!="hidraw", GOTO="mqttdeck_rules_end"
+
+# Original Stream Deck
+ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0060", \
+       TAG+="systemd", OWNER="mqttdeck", ENV{SYSTEMD_WANTS}+="mqttdeck.service"
+
+# Stream Deck v2
+ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006d", \
+       TAG+="systemd", OWNER="mqttdeck", ENV{SYSTEMD_WANTS}+="mqttdeck.service"
+
+# Stream Deck Mini
+ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0080", \
+       TAG+="systemd", OWNER="mqttdeck", ENV{SYSTEMD_WANTS}+="mqttdeck.service"
+
+# Stream Deck Mini Mk2
+ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0090", \
+       TAG+="systemd", OWNER="mqttdeck", ENV{SYSTEMD_WANTS}+="mqttdeck.service"
+
+# Stream Deck XL
+ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006c", \
+       TAG+="systemd", OWNER="mqttdeck", ENV{SYSTEMD_WANTS}+="mqttdeck.service"
+
+# Stream Deck XL v2
+ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="008f", \
+       TAG+="systemd", OWNER="mqttdeck", ENV{SYSTEMD_WANTS}+="mqttdeck.service"
+
+LABEL="mqttdeck_rules_end"