{ config, lib, pkgs, ... }: let mpdport = (import ../data/aliases.nix).services.mpd.port; mpdwebport = (import ../data/aliases.nix).services.mpdweb.port; in { networking.firewall.allowedTCPPorts = [ mpdport mpdwebport ]; services.ympd = { enable = true; webPort = toString mpdwebport; }; services.mpd = { enable = true; musicDirectory = "/storage/music"; extraConfig = '' audio_output { type "httpd" name "KJ mpd stream" encoder "lame" port "${toString mpdport}" quality "0" # do not define if bitrate is defined #bitrate "128" # do not define if quality is defined format "44100:16:1" always_on "yes" # prevent MPD from disconnecting all listeners when playback is stopped. tags "yes" # httpd supports sending tags to listening streams. audio_buffer_size "8192" } ''; }; }