service/navidrome: enable monitoring and sharing

This commit is contained in:
Felix Buehler 2023-06-01 00:56:51 +02:00
parent 19f1eec29b
commit b0c2432072
3 changed files with 1469 additions and 34 deletions

View file

@ -10,7 +10,9 @@ in
settings = mkOption { settings = mkOption {
type = (pkgs.formats.json { }).type; type = (pkgs.formats.json { }).type;
default = { }; default = {
EnableSharing = true;
};
example = { example = {
"LastFM.ApiKey" = "MYKEY"; "LastFM.ApiKey" = "MYKEY";
"LastFM.Secret" = "MYSECRET"; "LastFM.Secret" = "MYSECRET";
@ -45,7 +47,7 @@ in
Address = "127.0.0.1"; Address = "127.0.0.1";
MusicFolder = cfg.musicFolder; MusicFolder = cfg.musicFolder;
LogLevel = "info"; LogLevel = "info";
# Prometheus.Enabled = config.services.prometheus.enable; Prometheus.Enabled = config.services.prometheus.enable;
}; };
}; };
@ -56,31 +58,30 @@ in
} }
]; ];
# TODO enable in 23.05 services.prometheus = {
# services.prometheus = { scrapeConfigs = [
# scrapeConfigs = [ {
# { job_name = "navidrome";
# job_name = "navidrome"; static_configs = [
# static_configs = [ {
# { targets = [ "127.0.0.1:${toString cfg.port}" ];
# targets = [ "127.0.0.1:${toString cfg.port}" ]; labels = {
# labels = { instance = config.networking.hostName;
# instance = config.networking.hostName; };
# }; }
# } ];
# ]; }
# } ];
# ]; };
# }; services.grafana.provision = {
# services.grafana.provision = { dashboards.settings.providers = [
# dashboards.settings.providers = [ {
# { name = "Navidrome";
# name = "Navidrome"; options.path = pkgs.grafana-dashboards.navidrome;
# options.path = pkgs.grafana-dashboards.navidrome; disableDeletion = true;
# disableDeletion = true; }
# } ];
# ]; };
# };
webapps.apps.navidrome = { webapps.apps.navidrome = {
dashboard = { dashboard = {

View file

@ -58,13 +58,14 @@ in
src = ./nextcloud.json; # sadly only imported dashboards work src = ./nextcloud.json; # sadly only imported dashboards work
}); });
# navidrome = buildGrafanaDashboard { navidrome = (buildGrafanaDashboard {
# id = 18038; id = 18038;
# pname = "navidrome"; pname = "navidrome";
# version = "1"; version = "1";
# hash = "sha256-MU890UAEI9wrnVIC/R0HkYwFa6mJ8Y7ESAWuaSQ8FQ8="; hash = "sha256-MU890UAEI9wrnVIC/R0HkYwFa6mJ8Y7ESAWuaSQ8FQ8=";
# }; }).overrideAttrs (self: super: {
src = ./navidrome.json; # sadly data source is not detected
});
loki = (buildGrafanaDashboard { loki = (buildGrafanaDashboard {
id = 13407; id = 13407;

File diff suppressed because it is too large Load diff