4 Commits

Author SHA1 Message Date
arian a4e896158d add preinstall script for deb package 2026-04-05 17:19:31 -04:00
arian e68d675f4b Merge branch 'pr-systemd-service' 2026-04-05 17:07:24 -04:00
arian f9ca5f299f add systemd service file 2026-04-05 17:04:14 -04:00
arian 4b9728e814 Merge branch 'gunicorn-migration' 2026-04-04 16:33:46 -04:00
2 changed files with 53 additions and 0 deletions
+47
View File
@@ -0,0 +1,47 @@
[Unit]
Description=Navidrome Music Uploader Service
After=network.target,navidrome.service
[Service]
Type=simple
User=navidrome-uploader
Group=navidrome-uploader
WorkingDirectory=/opt/navidrome-uploader
Environment="PATH=/opt/navidrome-uploader/venv/bin"
EnvironmentFile=/etc/default/navidrome-uploader/.env
ExecStart=/opt/navidrome-uploader/venv/bin/gunicorn -c gunicorn.conf.py main:app
Restart=on-failure
RestartSec=30
NoNewPrivileges=yes
CapabilityBoundingSet=
AmbientCapabilities=
ProtectSystem=strict
ProtectHome=yes
PrivateTmp=yes
ReadWritePaths=/opt/uploader
InaccessiblePaths=/boot /mnt /media
PrivateDevices=yes
ProtectKernelTunables=yes
ProtectKernelModules=yes
ProtectKernelLogs=yes
ProtectControlGroups=yes
ProtectClock=yes
ProtectHostname=yes
RestrictNamespaces=yes
RestrictRealtime=yes
RestrictSUIDSGID=yes
LockPersonality=yes
SystemCallFilter=@system-service
SystemCallErrorNumber=EPERM
PrivateNetwork=no
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX
UMask=0027
[Install]
WantedBy=multi-user.target
+6
View File
@@ -0,0 +1,6 @@
#!/bin/sh
if ! getent passwd navidrome-uploader > /dev/null 2>&1; then
printf "Creating navidrome-uploader user\n"
useradd --system --shell /usr/sbin/nologin --user-group navidrome-uploader
fi