From ba8b97e9d08969b15d9a04e3492e3b23308ba81e Mon Sep 17 00:00:00 2001 From: Nickiel12 Date: Thu, 13 Feb 2025 18:27:39 -0800 Subject: [PATCH] added navidrome music management --- hosts/Alaska/default.nix | 1 + hosts/Alaska/modules/dns.nix | 5 ++++ hosts/Alaska/modules/navidrome.nix | 44 ++++++++++++++++++++++++++++++ 3 files changed, 50 insertions(+) create mode 100644 hosts/Alaska/modules/navidrome.nix diff --git a/hosts/Alaska/default.nix b/hosts/Alaska/default.nix index 56bc328..087e4d8 100644 --- a/hosts/Alaska/default.nix +++ b/hosts/Alaska/default.nix @@ -15,6 +15,7 @@ ./modules/home-assistant.nix ./modules/msmtp.nix ./modules/mosquitto.nix + ./modules/navidrome.nix ./modules/nginx.nix ./modules/nextcloud.nix ./modules/nicks_nextcould_integrations.nix diff --git a/hosts/Alaska/modules/dns.nix b/hosts/Alaska/modules/dns.nix index ebbdaf3..137b9cd 100644 --- a/hosts/Alaska/modules/dns.nix +++ b/hosts/Alaska/modules/dns.nix @@ -29,6 +29,11 @@ type = "A"; value = "100.64.0.1"; } + { + name = "navidrome.nickiel.net"; + type = "A"; + value = "100.64.0.1"; + } { name = "printers.nickiel.net"; type = "A"; diff --git a/hosts/Alaska/modules/navidrome.nix b/hosts/Alaska/modules/navidrome.nix new file mode 100644 index 0000000..3790104 --- /dev/null +++ b/hosts/Alaska/modules/navidrome.nix @@ -0,0 +1,44 @@ +{ config, ...}: + +let +in +{ + services.navidrome = { + enable = true; + settings = { + Port = 4533; + Address = "127.0.0.1"; + + Backup.Path = "/Aurora/Navidrome/Data/Backups"; + Backup.Schedule = "59 23 * * 6"; + Backup.Count = 2; + + MusicFolder = "/Aurora/Navidrome/Music"; + DataFolder = "/Aurora/Navidrome/Data"; + CacheFolder = "/Aurora/Navidrome/Cache"; + + ScanSchedule = "@every 24h"; + TranscodingCacheSize = "150MiB"; + }; + user = "navidrome"; + group = "navidrome"; + openFirewall = false; + }; + + services.nginx.virtualHosts = { + "navidrome.nickiel.net" = { + forceSSL = true; + enableACME = true; + locations."/" = { + proxyPass = "http://127.0.0.1:${builtins.toString config.services.navidrome.settings.Port}"; + proxyWebsockets = true; + extraConfig = '' + allow 100.64.0.0/16; + allow 127.0.0.1; + deny all; + ''; + }; + }; + }; +} +