diff --git a/configs/nixos/ni/modules/setups/music.nix b/configs/nixos/ni/modules/setups/music.nix index 35b770e7..41835025 100644 --- a/configs/nixos/ni/modules/setups/music.nix +++ b/configs/nixos/ni/modules/setups/music.nix @@ -1,22 +1,35 @@ -{ config, lib, pkgs, ... }: +{ config, lib, foodogsquaredLib, ... }: let hostCfg = config.hosts.ni; cfg = hostCfg.setups.music; - - gonicPort = 4747; - uxplayPort = gonicPort + 1; in { options.hosts.ni.setups.music.enable = lib.mkEnableOption "music streaming and organizing setup"; config = lib.mkIf cfg.enable { + state.ports = rec { + gonic = { + value = 4747; + protocols = [ "tcp" ]; + openFirewall = true; + }; + uxplay = { + value = 10001; + openFirewall = true; + }; + uxplayClients = { + value = foodogsquaredLib.nixos.makeRange' uxplay.value 10; + openFirewall = true; + }; + }; + # My portable music streaming server. services.gonic = { enable = true; settings = rec { - listen-addr = "localhost:${builtins.toString gonicPort}"; + listen-addr = "localhost:${builtins.toString config.state.ports.gonic.value}"; cache-path = "/var/cache/gonic"; music-path = [ @@ -35,9 +48,7 @@ in # My AirPlay mirroring server. services.uxplay = { enable = true; - extraArgs = [ "-p" (builtins.toString uxplayPort) ]; + extraArgs = [ "-p" (builtins.toString config.state.ports.uxplay.value) ]; }; - - networking.firewall.allowedTCPPorts = [ gonicPort uxplayPort ]; }; }