]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - nixops/modules/mpd.nix
Move directories with only default.nix to standalone file
[perso/Immae/Config/Nix.git] / nixops / modules / mpd.nix
diff --git a/nixops/modules/mpd.nix b/nixops/modules/mpd.nix
new file mode 100644 (file)
index 0000000..7c896ca
--- /dev/null
@@ -0,0 +1,58 @@
+{ lib, pkgs, config, myconfig, mylibs, ... }:
+{
+  config = {
+    mySecrets.keys = [
+      {
+        dest = "mpd";
+        permissions = "0400";
+        text = myconfig.env.mpd.password;
+      }
+      {
+        dest = "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" ];
+    system.activationScripts.mpd = ''
+      install -d -m 0755 -o mpd -g mpd /run/mpd
+      '';
+    services.mpd = {
+      enable = true;
+      network.listenAddress = "any";
+      musicDirectory = myconfig.env.mpd.folder;
+      extraConfig = ''
+        include "/var/secrets/mpd-config"
+        audio_output {
+          type            "null"
+          name            "No Output"
+          mixer_type      "none"
+        }
+        audio_output {
+          type            "httpd"
+          name            "OGG"
+          encoder         "vorbis"
+          bind_to_address "/run/mpd/ogg.sock"
+          quality         "5.0"
+          format          "44100:16:1"
+        }
+        audio_output {
+          type            "httpd"
+          name            "MP3"
+          encoder         "lame"
+          bind_to_address "/run/mpd/mp3.sock"
+          quality         "5.0"
+          format          "44100:16:1"
+        }
+
+
+        '';
+    };
+  };
+}
+