2023-05-25 03:18:18 +00:00
|
|
|
{ config, lib, pkgs, ... }:
|
|
|
|
|
2023-05-26 05:49:11 +00:00
|
|
|
let
|
|
|
|
musicDir = "/srv/music";
|
|
|
|
playlistsDir = "${musicDir}/playlists";
|
2023-05-26 07:06:27 +00:00
|
|
|
|
|
|
|
beetsOverride = pkgs.writeScriptBin "beet" ''
|
|
|
|
${pkgs.beets}/bin/beet --config=${./config/beets/config.yml}
|
|
|
|
'';
|
2023-05-26 05:49:11 +00:00
|
|
|
in
|
2023-05-25 03:18:18 +00:00
|
|
|
{
|
2023-05-26 07:06:27 +00:00
|
|
|
environment.systemPackages = [ beetsOverride ];
|
|
|
|
|
2023-05-26 05:49:11 +00:00
|
|
|
services.mopidy = {
|
|
|
|
enable = true;
|
|
|
|
extensionPackages = with pkgs; [
|
|
|
|
mopidy-iris
|
|
|
|
mopidy-local
|
|
|
|
mopidy-mpd
|
|
|
|
mopidy-mpris
|
|
|
|
mopidy-youtube
|
|
|
|
];
|
|
|
|
|
|
|
|
configuration = ''
|
|
|
|
[http]
|
|
|
|
hostname = 172.23.0.1
|
|
|
|
port = 6669
|
|
|
|
|
|
|
|
[file]
|
|
|
|
enabled = true
|
|
|
|
media_dirs =
|
|
|
|
${musicDir}|Music
|
|
|
|
|
|
|
|
[m3u]
|
|
|
|
enabled = true
|
|
|
|
base_dir = ${musicDir}
|
|
|
|
playlists_dir = ${playlistsDir}
|
|
|
|
default_encoding = utf-8
|
|
|
|
default_extension = .m3u8
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
2023-05-26 05:49:32 +00:00
|
|
|
services.gonic = {
|
|
|
|
enable = true;
|
|
|
|
settings = {
|
|
|
|
listen-addr = "172.23.0.1:4747";
|
|
|
|
cache-path = "/var/cache/gonic";
|
|
|
|
music-path = [ musicDir ];
|
|
|
|
podcast-path = "/var/cache/gonic/podcasts";
|
|
|
|
|
|
|
|
jukebox-enabled = true;
|
|
|
|
|
|
|
|
scan-interval = 1;
|
|
|
|
scan-at-start-enabled = true;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2023-05-25 03:18:18 +00:00
|
|
|
system.stateVersion = "23.05";
|
|
|
|
}
|