Navidrome: Add missing steps, unit, config
This commit is contained in:
parent
53b65e4cc5
commit
97aa792ffc
4 changed files with 101 additions and 16 deletions
47
run/navidrome/workspace/navidrome.service
Normal file
47
run/navidrome/workspace/navidrome.service
Normal file
|
@ -0,0 +1,47 @@
|
|||
[Unit]
|
||||
Description=Navidrome Music Server and Streamer compatible with Subsonic/Airsonic
|
||||
After=remote-fs.target network.target
|
||||
AssertPathExists=/var/lib/navidrome
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
[Service]
|
||||
User=navidrome
|
||||
Group=navidrom
|
||||
Type=simple
|
||||
ExecStart=/opt/navidrome/navidrome --configfile "/etc/navidrome.toml"
|
||||
WorkingDirectory=/var/lib/navidrome
|
||||
TimeoutStopSec=20
|
||||
KillMode=process
|
||||
Restart=on-failure
|
||||
|
||||
# See https://www.freedesktop.org/software/systemd/man/systemd.exec.html
|
||||
DevicePolicy=closed
|
||||
NoNewPrivileges=yes
|
||||
PrivateTmp=yes
|
||||
PrivateUsers=yes
|
||||
ProtectControlGroups=yes
|
||||
ProtectKernelModules=yes
|
||||
ProtectKernelTunables=yes
|
||||
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
|
||||
RestrictNamespaces=yes
|
||||
RestrictRealtime=yes
|
||||
SystemCallFilter=~@clock @debug @module @mount @obsolete @reboot @setuid @swap
|
||||
ReadWritePaths=/var/lib/navidrome
|
||||
|
||||
# You can uncomment the following line if you're not using the jukebox This
|
||||
# will prevent navidrome from accessing any real (physical) devices
|
||||
#PrivateDevices=yes
|
||||
|
||||
# You can change the following line to `strict` instead of `full` if you don't
|
||||
# want navidrome to be able to write anything on your filesystem outside of
|
||||
# /var/lib/navidrome.
|
||||
ProtectSystem=full
|
||||
|
||||
# You can uncomment the following line if you don't have any media in /home/*.
|
||||
# This will prevent navidrome from ever reading/writing anything there.
|
||||
#ProtectHome=true
|
||||
|
||||
# You can customize some Navidrome config options by setting environment variables here. Ex:
|
||||
#Environment=ND_BASEURL="/navidrome"
|
5
run/navidrome/workspace/navidrome.toml
Normal file
5
run/navidrome/workspace/navidrome.toml
Normal file
|
@ -0,0 +1,5 @@
|
|||
MusicFolder = "/var/lib/navidrome/music"
|
||||
DataFolder = "/var/lib/navidrome/data"
|
||||
Address = "::"
|
||||
BaseUrl = "http://localhost"
|
||||
# https://www.navidrome.org/docs/usage/configuration-options/#available-options
|
28
run/navidrome/workspace/syncthing.service
Normal file
28
run/navidrome/workspace/syncthing.service
Normal file
|
@ -0,0 +1,28 @@
|
|||
[Unit]
|
||||
Description=Syncthing - Open Source Continuous File Synchronization for photoprism
|
||||
Documentation=man:syncthing(1)
|
||||
After=network.target
|
||||
StartLimitIntervalSec=60
|
||||
StartLimitBurst=4
|
||||
|
||||
[Service]
|
||||
User=navidrome
|
||||
ExecStart=/usr/bin/syncthing serve --no-browser --no-restart --logflags=0 --home /var/lib/navidrome/syncthing --no-default-folder --gui-address=":8384"
|
||||
Restart=on-failure
|
||||
RestartSec=1
|
||||
SuccessExitStatus=3 4
|
||||
RestartForceExitStatus=3 4
|
||||
|
||||
# Hardening
|
||||
ProtectSystem=full
|
||||
PrivateTmp=true
|
||||
SystemCallArchitectures=native
|
||||
MemoryDenyWriteExecute=true
|
||||
NoNewPrivileges=true
|
||||
|
||||
# Elevated permissions to sync ownership (disabled by default),
|
||||
# see https://docs.syncthing.net/advanced/folder-sync-ownership
|
||||
#AmbientCapabilities=CAP_CHOWN CAP_FOWNER
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
Loading…
Add table
Add a link
Reference in a new issue