{ lib, pkgs, config, myconfig, mylibs, ... }: { config = { nixpkgs.overlays = [ (self: super: rec { mpd = (self.callPackage ./mpd.nix {}).mpd; }) ]; deployment.keys = { mpd = { permissions = "0400"; text = myconfig.env.mpd.password; }; mpd-config = { permissions = "0400"; user = "mpd"; group = "mpd"; text = '' password "${myconfig.env.mpd.password}@read,add,control,admin" ''; }; }; networking.firewall.allowedTCPPorts = [ 6600 ]; users.users.mpd.extraGroups = [ "wwwrun" "keys" ]; services.mpd = { enable = true; network.listenAddress = "any"; musicDirectory = myconfig.env.mpd.folder; extraConfig = '' include "/run/keys/mpd-config" audio_output { type "null" name "No Output" mixer_type "none" } audio_output { type "httpd" name "OGG" encoder "vorbis" port "${myconfig.env.ports.mpd_ogg}" bind_to_address "127.0.0.1" quality "5.0" format "44100:16:1" } audio_output { type "httpd" name "MP3" encoder "lame" port "${myconfig.env.ports.mpd_mp3}" bind_to_address "127.0.0.1" quality "5.0" format "44100:16:1" } ''; }; }; }