{ pkgs, lib, tree, ... }: {
  #imports = [ ./mpd-broadcast/broadcast.nix ];

  environment.systemPackages = with pkgs; [ mpc_cli ];

  services.mpd = {
    enable = true;
    network.listenAddress = "0.0.0.0";
    dataDir = "/mpd";
    musicDirectory = "/storage/music";
    playlistDirectory = "/mpd/playlists";
    credentials = [{
      passwordFile = "/secrets/mpd-password";
      permissions = [ "read" "add" "control" "admin" ];
    }];
    extraConfig = ''
      host_permissions "127.0.0.1 read,add,control,admin"
      samplerate_converter "0"
      metadata_to_use "title,artist"
      auto_update "yes"
      audio_buffer_size "4096"
      #replaygain "track"
      audio_output_format "44100:16:2"
      audio_output {
        type		"httpd"
        name		"HTTP Opus"
        encoder		"opus"
        port		"8012"
        bitrate		"96000"
        format		"44100:16:2"
        always_on       "yes"
        tags            "yes"
        signal "music"
        packet_loss "5"
      }
      audio_output {
        type		"httpd"
        name		"HTTP FLAC"
        encoder		"flac"
        port		"8013"
        format		"44100:16:2"
        #oggflac "yes"
        #oggchaining "yes"
        always_on       "yes"
        tags            "yes"
      }
    '';
  };

  systemd.services.mpd.serviceConfig.StateDirectory = [ "/mpd" ];

  services.nginx.virtualHosts."stream.owo.monster" = {
    forceSSL = true;
    enableACME = true;
    locations = {
      "/" = {
        proxyPass = "http://127.0.0.1:8012";
        extraConfig = ''
          auth_basic "Music Password";
          auth_basic_user_file /secrets/music-stream-passwd; 
        '';
      };
      "/flac" = {
        proxyPass = "http://127.0.0.1:8013";
        extraConfig = ''
          auth_basic "Music Password";
          auth_basic_user_file /secrets/music-stream-passwd; 
        '';
      };
    };
  };

  networking.firewall.allowedTCPPorts = [ 6600 ];
}