summaryrefslogtreecommitdiffstats
path: root/hosts/poweredge
diff options
context:
space:
mode:
authorTim Keller <tjk@tjkeller.xyz>2026-10-30 19:21:00 -0500
committerTim Keller <tjk@tjkeller.xyz>2026-10-30 19:21:00 -0500
commit77e7a7cf781569b82344b07dc9f5cd8263255c75 (patch)
tree7797cc67ec63611be1f2a73769355f54ca5ba87f /hosts/poweredge
parent75b9bf76277ddb97fa3787b40c22c4b4750aad31 (diff)
downloadnixos-77e7a7cf781569b82344b07dc9f5cd8263255c75.tar.xz
nixos-77e7a7cf781569b82344b07dc9f5cd8263255c75.zip
add navidrome service
Diffstat (limited to 'hosts/poweredge')
-rw-r--r--hosts/poweredge/navidrome.nix51
1 files changed, 51 insertions, 0 deletions
diff --git a/hosts/poweredge/navidrome.nix b/hosts/poweredge/navidrome.nix
new file mode 100644
index 0000000..fa40ed4
--- /dev/null
+++ b/hosts/poweredge/navidrome.nix
@@ -0,0 +1,51 @@
+{
+ containers.navidrome = {
+ autoStart = true;
+ privateNetwork = true;
+ hostBridge = "br-lan0";
+ localMacAddress = "02:00:00:00:00:08";
+
+ bindMounts = {
+ "/media/music" = {
+ hostPath = "/media/ingens/media/music";
+ isReadOnly = true;
+ };
+ #"/media/podcasts" = {
+ # hostPath = "/media/ingens/media/podcasts";
+ # isReadOnly = true;
+ #};
+ };
+
+ config = { lib, config, pkgs, ... }: {
+ # Network
+ networking.interfaces.eth0.useDHCP = true;
+ networking.firewall.allowedTCPPorts = [ 80 ]; # Caddy
+
+ # Navidrome
+ services.navidrome = {
+ enable = true;
+
+ plugins = with pkgs.navidromePlugins; [
+ #audiomuseai
+ listenbrainz-daily-playlist
+ #lyrics-plugin
+ ];
+
+ settings.MusicFolder = "/media/music/library";
+
+ # The lyrics plugin bundle is named lyrics-plugin.ndp.
+ settings.LyricsPriority = ".ttml,.yaml,.yml,.elrc,.srt,lyrics-plugin,embedded,.lrc,.txt";
+ };
+
+ # Reverse proxy
+ services.caddy = {
+ enable = true;
+ virtualHosts.":80".extraConfig = ''
+ reverse_proxy localhost:4533
+ '';
+ };
+
+ system.stateVersion = "26.05";
+ };
+ };
+}