diff options
author | Profpatsch <mail@profpatsch.de> | 2021-03-05 22:45:50 +0100 |
---|---|---|
committer | Profpatsch <mail@profpatsch.de> | 2021-03-05 22:56:29 +0100 |
commit | ad93ce770eb5f25a06a8c5cc87aa7287edd04f3e (patch) | |
tree | 907c0ea38baea20bf153b4be9bbfe6bdd1ccf09c /modules | |
parent | b79a8de38f9e3d2e48b3acb0e0264f1594f2fd60 (diff) |
services/Profpatsch: add gonic server & enable on haku
gonic is a modern alternative to mpd, it indexes music directories and provides a server with a protocol to request files and metadata. It has an Android app.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/module-list.nix | 1 | ||||
-rw-r--r-- | modules/user/profpatsch/services/gonic.nix | 57 |
2 files changed, 58 insertions, 0 deletions
diff --git a/modules/module-list.nix b/modules/module-list.nix index ded01dab..42543814 100644 --- a/modules/module-list.nix +++ b/modules/module-list.nix @@ -39,6 +39,7 @@ ./user/profpatsch/programs/scanning.nix ./user/profpatsch/programs/weechat.nix ./user/profpatsch/services/bitlbee.nix + ./user/profpatsch/services/gonic.nix ./user/profpatsch/services/dunst.nix ./user/sternenseemann/documentation/mandoc.nix ./user/sternenseemann/services/sway.nix diff --git a/modules/user/profpatsch/services/gonic.nix b/modules/user/profpatsch/services/gonic.nix new file mode 100644 index 00000000..73ccde7c --- /dev/null +++ b/modules/user/profpatsch/services/gonic.nix @@ -0,0 +1,57 @@ +{ config, lib, pkgs, ... }: + +let + cfg = config.vuizvui.services.profpatsch.gonic; + gonicDataDir = "/var/lib/gonic"; + userName = "gonic"; + + inherit (pkgs.vuizvui.profpatsch) + writeExecline + lru-dir + getBins + ; + + bins = getBins pkgs.gonic [ "gonic" ] + ; + +in { + + options.vuizvui.services.profpatsch.gonic = { + enable = lib.mkEnableOption "gonic server"; + + musicDir = lib.mkOption { + description = "path to the music directory"; + type = lib.types.path; + }; + musicDirGroup = lib.mkOption { + description = "user group to access music directory"; + type = lib.types.str; + }; + + }; + + config = lib.mkIf cfg.enable { + users.users.${userName} = { + isSystemUser = true; + createHome = true; + home = gonicDataDir; + }; + + systemd.services.gonic = { + wantedBy = [ "default.target" ]; + serviceConfig = { + ExecStart = writeExecline "start-gonic" {} [ + bins.gonic + "-listen-addr" "127.0.0.1:4747" + "-cache-path" "${gonicDataDir}/cache" + "-db-path" "${gonicDataDir}/db.sqlite" + "-music-path" cfg.musicDir + ]; + StateDirectory = gonicDataDir; + User = userName; + SupplementaryGroups = cfg.musicDirGroup; + }; + }; + + }; +} |