feat: s/soft/soft-serve/; sysusers; tmpfiles

Carlos Alexandro Becker created

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

Change summary

.nfpm/postinstall.sh     | 13 ++++++++-----
.nfpm/postremove.sh      |  8 ++++++--
.nfpm/soft-serve.conf    |  4 ++--
.nfpm/soft-serve.service | 20 +++++++++++---------
.nfpm/sysusers.conf      |  1 +
.nfpm/tmpfiles.conf      |  1 +
6 files changed, 29 insertions(+), 18 deletions(-)

Detailed changes

.nfpm/postinstall.sh 🔗

@@ -6,9 +6,12 @@ if ! command -V systemctl >/dev/null 2>&1; then
 	exit 0
 fi
 
-echo "Enabling and starting soft.service"
+systemd-sysusers
+systemd-tmpfiles --create
+
+echo "Enabling and starting soft-server.service"
 systemctl daemon-reload
-systemctl unmask soft.service
-systemctl preset soft.service
-systemctl enable soft.service
-systemctl restart soft.service
+systemctl unmask soft-serve.service
+systemctl preset soft-serve.service
+systemctl enable soft-serve.service
+systemctl restart soft-serve.service

.nfpm/postremove.sh 🔗

@@ -6,6 +6,10 @@ if ! command -V systemctl >/dev/null 2>&1; then
 	exit 0
 fi
 
-systemctl stop soft.service
-systemctl disable soft.service
+echo "Disabling and starting soft-server.service"
+systemctl stop soft-serve.service
+systemctl disable soft-serve.service
 systemctl daemon-reload
+systemctl reset-failed
+
+echo "WARN: the soft-serve user/group and /var/lib/soft-serve directory were not removed"

.nfpm/soft.conf → .nfpm/soft-serve.conf 🔗

@@ -1,6 +1,6 @@
+SOFT_SERVE_DATA_PATH=/var/lib/soft-serve
+#SOFT_SERVE_BIND_ADDRESS=0.0.0.0
 #SOFT_SERVE_PORT=23231
 #SOFT_SERVE_HOST=domain.tld
-#SOFT_SERVE_BIND_ADDRESS=0.0.0.0
 #SOFT_SERVE_KEY_PATH=.ssh/soft_serve_server_ed25519
 #SOFT_SERVE_INITIAL_ADMIN_KEYS='ssh-ed25519 AAAAC3NzaC1lZDI1...'
-SOFT_SERVE_DATA_PATH=/var/local/lib/soft-serve

.nfpm/soft.service → .nfpm/soft-serve.service 🔗

@@ -4,8 +4,15 @@ Documentation=https://github.com/charmbracelet/soft-serve
 Requires=network-online.target
 After=network-online.target
 
-[Install]
-WantedBy=multi-user.target
+[Service]
+Type=simple
+User=soft-serve
+Group=soft-serve
+Restart=always
+RestartSec=1
+ExecStart=/usr/bin/soft serve
+EnvironmentFile=-/etc/soft-serve.conf
+WorkingDirectory=/var/lib/soft-serve
 
 # Hardening
 ReadWritePaths=/var/lib/soft-serve
@@ -36,10 +43,5 @@ SystemCallFilter=@system-service
 SystemCallFilter=~@privileged @resources
 SystemCallArchitectures=native
 
-[Service]
-Type=simple
-Restart=always
-RestartSec=1
-ExecStartPre=mkdir -p /var/local/lib/soft-serve
-ExecStart=/usr/bin/soft serve
-EnvironmentFile=-/etc/soft.conf
+[Install]
+WantedBy=multi-user.target