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
@@ -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
@@ -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"
@@ -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
@@ -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
@@ -0,0 +1 @@
+u soft-serve - "Soft Serve daemon user" /var/lib/soft-serve
@@ -0,0 +1 @@
+d /var/lib/soft-serve 0750 soft-serve soft-serve