hosts/ni/setups/music: use state ports module

This commit is contained in:
Gabriel Arazas 2024-07-31 13:09:10 +08:00
parent 16dd14e451
commit 0e85085730
No known key found for this signature in database
GPG Key ID: 62104B43D00AA360

View File

@ -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 ];
};
}