{lib,pkgs, ... }:
let
  pkg = lib.overrideDerivation pkgs.ympd (old: {
      patches = [ ./ympd-top-next.patch ];
  });
  mpdHost = "mpd.shack";
  ympd = name: port: let
    webPort = 10000 + port;
  in {
    systemd.services."ympd-${name}" = {
      description = "mpd for ${name}";
      wantedBy = [ "multi-user.target" ];
      serviceConfig.ExecStart = "${pkg}/bin/ympd --host ${mpdHost} --port ${toString port} --webport ${toString webPort} --user nobody";
    };
    services.nginx.virtualHosts."mobile.${name}.mpd.shack" = {
      serverAliases = [
        "${name}.mpd.wolf.r"
        "${name}.mpd.wolf.shack"
      ];
      locations."/".proxyPass = "http://localhost:${toString webPort}";
    };
  };
in lib.mkMerge [{
  services.nginx.enable = true;
}
  (ympd "lounge" 6600)
  (ympd "seminarraum" 6601)
  (ympd "elab" 6602)
  (ympd "kueche" 6603)
  (ympd "crafting" 6604)
  (ympd "fablab" 6605)
  (ympd "workshop" 6606)
  (ympd "klo" 6607)

]