mirror of
https://github.com/foo-dogsquared/nixos-config.git
synced 2025-01-31 16:57:55 +00:00
55 lines
1.3 KiB
Nix
55 lines
1.3 KiB
Nix
{ config, lib, foodogsquaredLib, ... }:
|
|
|
|
let
|
|
hostCfg = config.hosts.ni;
|
|
cfg = hostCfg.setups.music;
|
|
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 config.state.ports.gonic.value}";
|
|
cache-path = "/var/cache/gonic";
|
|
music-path =
|
|
[
|
|
"/srv/Music"
|
|
];
|
|
podcast-path = "${cache-path}/podcasts";
|
|
playlists-path = "${cache-path}/playlists";
|
|
|
|
jukebox-enabled = true;
|
|
|
|
scan-interval = 1;
|
|
scan-at-start-enabled = true;
|
|
};
|
|
};
|
|
|
|
# My AirPlay mirroring server.
|
|
services.uxplay = {
|
|
enable = true;
|
|
extraArgs = [ "-p" (builtins.toString config.state.ports.uxplay.value) ];
|
|
};
|
|
};
|
|
}
|