summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIngar <ingar@telenet.be>2026-03-01 09:34:23 +0000
committerIngar <ingar@telenet.be>2026-03-01 09:34:23 +0000
commit21800c3eeb7ca14abd05d995b6bdba23b7ed1386 (patch)
treec2a6699d385aa0808bf1c39080df18a305641b0f
Stand alone package for indiserver-systemd.HEADmaster
-rw-r--r--PKGBUILD52
-rwxr-xr-xindiserver-systemd20
-rw-r--r--indiserver.conf8
-rw-r--r--indiserver.service27
-rw-r--r--indiserver.sysusers3
5 files changed, 110 insertions, 0 deletions
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 0000000..40270f3
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,52 @@
+# Maintainer: Stijn Buys <ingar@telenet.be>
+
+# TODO
+# create indiserver user and /var/lib/indiserver directory
+
+pkgname=indiserver-systemd
+pkgver=0.1.0
+pkgrel=1
+pkgdesc=""
+license=(LGPL2.1)
+arch=(any)
+depends=(libindi)
+makedepends=()
+conflicts=()
+source=(
+ "indiserver.conf"
+ "indiserver.service"
+ "indiserver-systemd"
+ "indiserver.sysusers"
+)
+sha256sums=(
+ "9632e852af95df289fdb340590da792c49b7e7032fb8bd5d85a3455303a25946"
+ "60455b1bf64ded411cd660cf29d56d479e591d754e177d604c2416053fa9ca16"
+ "64b0197fd6296c201516e5f81e1edc4b4415e3d80663c3533c9ed249ab844d6a"
+ "43f1be09f500f4cf34000078e4fdba7d28a6bbbc7899ea5c7b8fd7644ff545e9"
+)
+backup=(etc/indiserver.conf)
+
+prepare() {
+ cd "${srcdir}"
+}
+
+build() {
+ cd "${srcdir}"
+}
+
+package() {
+ cd "${pkgdir}"
+
+ install -d "etc/"
+ install -m 644 "${srcdir}/indiserver.conf" "etc/indiserver.conf"
+
+ install -d "usr/lib/systemd/system/"
+ install -m 644 "${srcdir}/indiserver.service" "usr/lib/systemd/system/indiserver.service"
+
+ install -d "usr/bin/"
+ install -m 755 "${srcdir}/indiserver-systemd" "usr/bin/indiserver-systemd"
+
+ install -d "usr/lib/sysusers.d"
+ install -m 644 "${srcdir}/indiserver.sysusers" "usr/lib/sysusers.d/indiserver.conf"
+}
+
diff --git a/indiserver-systemd b/indiserver-systemd
new file mode 100755
index 0000000..cc3aafb
--- /dev/null
+++ b/indiserver-systemd
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+INDI_CONF=/etc/indiserver.conf
+
+if [ -r "${INDI_CONF}" ]; then
+ source "${INDI_CONF}"
+else
+ echo "INDI server: could not open file ${INDI_CONF}"
+ exit 127
+fi
+
+if [ -z "${INDI_DRIVERS}" ]; then
+ echo "INDI server: no drivers defined in INDI_DRIVERS"
+ exit 127
+fi
+
+echo "Launching INDI server with drivers ${INDI_DRIVERS}"
+
+exec /usr/bin/indiserver -v ${INDI_DRIVERS}
+
diff --git a/indiserver.conf b/indiserver.conf
new file mode 100644
index 0000000..f51d53d
--- /dev/null
+++ b/indiserver.conf
@@ -0,0 +1,8 @@
+#
+# /etc/indiserver.conf
+# Configuration file for indiserver-systemd
+#
+
+# INDI drivers to load
+INDI_DRIVERS="indi_omegonprocam_ccd indi_asi_ccd indi_eqmod_telescope"
+
diff --git a/indiserver.service b/indiserver.service
new file mode 100644
index 0000000..1a10ef0
--- /dev/null
+++ b/indiserver.service
@@ -0,0 +1,27 @@
+# systemd unit file for INDI server
+
+[Unit]
+Description=server for local and remote INDI drivers
+Wants=network.target
+After=syslog.target network-online.target
+
+[Service]
+Type=simple
+Restart=on-failure
+RestartSec=30
+User=indiserver
+Group=indiserver
+
+PrivateUsers=true
+ProtectSystem=false
+ProtectHome=false
+ProtectKernelTunables=true
+ProtectKernelModules=true
+ProtectControlGroups=true
+
+WorkingDirectory=/var/lib/indiserver
+ExecStart=/usr/bin/indiserver-systemd
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/indiserver.sysusers b/indiserver.sysusers
new file mode 100644
index 0000000..eec7234
--- /dev/null
+++ b/indiserver.sysusers
@@ -0,0 +1,3 @@
+# service account for INDI server
+u! indiserver 6006 "INDI server service account" /var/lib/indiserver /usr/bin/bash
+m indiserver uucp