diff --git a/hosts/nixos/hs/containers.nix b/hosts/nixos/hs/containers.nix index 289fd4c..d4e986a 100644 --- a/hosts/nixos/hs/containers.nix +++ b/hosts/nixos/hs/containers.nix @@ -230,5 +230,35 @@ in autoStart = true; }; + # Navidrome music server + navidrome = { + image = "docker.io/deluan/navidrome:latest"; + + volumes = [ + "/var/lib/containers/config/navidrome:/data" + "/mnt/storage/Media/music:/music:ro" + ]; + + environment = { + PUID = commonUID; + PGID = commonGID; + TZ = systemTZ; + ND_MUSICFOLDER = "/music"; + ND_DATAFOLDER = "/data"; + ND_LOGLEVEL = "info"; + ND_SCANNER_SCHEDULE = "@every 6h"; + }; + + ports = [ + "5005:4533" + ]; + + extraOptions = [ + "--network=podman" + ]; + + autoStart = true; + }; + }; } diff --git a/hosts/nixos/vps/proxy.nix b/hosts/nixos/vps/proxy.nix index 4bffa44..4ca4055 100644 --- a/hosts/nixos/vps/proxy.nix +++ b/hosts/nixos/vps/proxy.nix @@ -90,6 +90,18 @@ }; }; + # Navidrome music server + music = { + rule = "Host(`music.yanlincs.com`)"; + service = "music"; + tls = { + certResolver = "cloudflare"; + domains = [{ + main = "*.yanlincs.com"; + }]; + }; + }; + }; services = { @@ -157,6 +169,15 @@ }; }; + # Navidrome backend (via WireGuard) + music = { + loadBalancer = { + servers = [{ + url = "http://10.2.2.20:5005"; + }]; + }; + }; + }; };