Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Running as a service

delune setup writes a unit for you. If you’d rather do it by hand, this is what it writes for a user service (~/.config/systemd/user/delune.service):

[Unit]
Description=delune
Wants=network-online.target
After=network-online.target

[Service]
ExecStart="/home/you/.local/bin/delune" serve
Environment="DELUNE_DATA_DIR=/home/you/.local/share/delune"
Environment="DELUNE_BIND=0.0.0.0:7474"
Restart=on-failure
RestartSec=5
UMask=0002

[Install]
WantedBy=default.target
systemctl --user daemon-reload
systemctl --user enable --now delune
loginctl enable-linger $USER       # keep it running when you're logged out
journalctl --user -u delune -f     # logs

A system-wide unit is the same with User= set and WantedBy=multi-user.target, in /etc/systemd/system/. The packaged unit (packaging/systemd/delune.service) adds sandboxing: a dedicated user, a read-only system, and write access only to the data and music folders.

Passwords can live in config.toml (written by the wizard or the web app, mode 0600) or in an EnvironmentFile= that only the service can read.

macOS

brew services start delune, or a LaunchAgent that runs delune serve with DELUNE_DATA_DIR set.