94 lines
2.0 KiB
Nix
Executable File
94 lines
2.0 KiB
Nix
Executable File
{
|
|
config,
|
|
lib,
|
|
namespace,
|
|
...
|
|
}:
|
|
with lib;
|
|
let
|
|
cfg = config.${namespace}.services.home-assistant;
|
|
in
|
|
{
|
|
config = mkIf cfg.enable {
|
|
services = {
|
|
music-assistant = {
|
|
enable = false;
|
|
providers = [
|
|
# "airplay" # music-assistant: airplay support is missing libraop, a library we will not package because it depends on OpenSSL 1.1.
|
|
"apple_music"
|
|
"audible"
|
|
"audiobookshelf"
|
|
"bluesound"
|
|
"builtin"
|
|
"chromecast"
|
|
"deezer"
|
|
"dlna"
|
|
"fanarttv"
|
|
"filesystem_local"
|
|
"filesystem_smb"
|
|
"fully_kiosk"
|
|
"gpodder"
|
|
"hass"
|
|
"hass_players"
|
|
"ibroadcast"
|
|
"itunes_podcasts"
|
|
"jellyfin"
|
|
"lastfm_scrobble"
|
|
"listenbrainz_scrobble"
|
|
"lrclib"
|
|
"musicbrainz"
|
|
"musiccast"
|
|
"nugs"
|
|
"opensubsonic"
|
|
"plex"
|
|
"podcastfeed"
|
|
"qobuz"
|
|
"radiobrowser"
|
|
"siriusxm"
|
|
"snapcast"
|
|
"sonos"
|
|
"sonos_s1"
|
|
"soundcloud"
|
|
"spotify"
|
|
"spotify_connect"
|
|
"squeezelite"
|
|
"subsonic_scrobble"
|
|
"theaudiodb"
|
|
"tidal"
|
|
"tunein"
|
|
"ytmusic"
|
|
];
|
|
};
|
|
|
|
# Enable AirPlay
|
|
pipewire = {
|
|
raopOpenFirewall = true;
|
|
|
|
extraConfig.pipewire = {
|
|
"10-airplay" = {
|
|
"context.modules" = [
|
|
{
|
|
name = "libpipewire-module-raop-discover";
|
|
}
|
|
];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
users.users.music-assistant = {
|
|
isSystemUser = true;
|
|
group = "music-assistant";
|
|
home = "/var/lib/music-assistant";
|
|
};
|
|
users.groups.music-assistant = { };
|
|
|
|
systemd.services.music-assistant.serviceConfig = {
|
|
DynamicUser = lib.mkForce false;
|
|
StateDirectory = "music-assistant";
|
|
User = "music-assistant";
|
|
Group = "music-assistant";
|
|
};
|
|
};
|
|
}
|