From b5874e2bcdb6f701f9d44167bd17a8209433fd48 Mon Sep 17 00:00:00 2001 From: h7x4 Date: Fri, 28 Jul 2023 21:50:38 +0200 Subject: [PATCH] tsuki/navidrome: init --- hosts/tsuki/configuration.nix | 2 +- hosts/tsuki/services/navidrome.nix | 20 ++++++++++++++++++++ hosts/tsuki/services/nginx/default.nix | 3 +++ 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 hosts/tsuki/services/navidrome.nix diff --git a/hosts/tsuki/configuration.nix b/hosts/tsuki/configuration.nix index 07901a0..dcce055 100644 --- a/hosts/tsuki/configuration.nix +++ b/hosts/tsuki/configuration.nix @@ -15,7 +15,7 @@ ./services/kanidm.nix ./services/matrix ./services/minecraft - ./services/nextcloud.nix + ./services/navidrome.nix ./services/nginx ./services/osuchan.nix ./services/pgadmin.nix diff --git a/hosts/tsuki/services/navidrome.nix b/hosts/tsuki/services/navidrome.nix new file mode 100644 index 0000000..396da97 --- /dev/null +++ b/hosts/tsuki/services/navidrome.nix @@ -0,0 +1,20 @@ +{ config, pkgs, ... }: let + cfg = config.services.navidrome; +in { + services.navidrome = { + enable = true; + settings = { + Address = "127.0.0.1"; + Port = 4533; + MusicFolder = "/data2/media/music"; + Prometheus.Enabled = true; + }; + }; + + local.socketActivation.navidrome = { + enable = true; + originalSocketAddress = "${cfg.settings.Address}:${toString cfg.settings.Port}"; + newSocketAddress = "/run/navidrome.sock"; + privateNamespace = false; + }; +} diff --git a/hosts/tsuki/services/nginx/default.nix b/hosts/tsuki/services/nginx/default.nix index eec1987..b2b6535 100644 --- a/hosts/tsuki/services/nginx/default.nix +++ b/hosts/tsuki/services/nginx/default.nix @@ -39,6 +39,7 @@ upstreams = let inherit (secrets) ips ports; srv = config.services; + sa = config.local.socketActivation; in { "atuin".servers."localhost:${s srv.atuin.port}" = { }; "dynmap".servers."localhost:${s ports.minecraft.dynmap}" = { }; @@ -51,6 +52,7 @@ "invidious".servers."localhost:${s config.services.invidious.port}" = { }; "jupyter".servers."unix:/run/jupyter/jupyter.sock" = { }; "kanidm".servers."localhost:8300" = { }; + "navidrome".servers."unix:${sa.navidrome.newSocketAddress}" = { }; "osuchan".servers."localhost:${s ports.osuchan}" = { }; "pgadmin".servers."unix:${srv.uwsgi.instance.vassals.pgadmin.socket}" = { }; "plex".servers."localhost:${s ports.plex}" = { }; @@ -157,6 +159,7 @@ (proxy ["map"] "http://dynmap" {}) (proxy ["osu"] "http://osuchan" {}) (proxy ["plex"] "http://plex" {}) + (proxy ["mus"] "http://navidrome" enableWebsockets) (proxy ["px1"] "https://proxmox" enableWebsockets) (proxy ["py"] "http://jupyter" enableWebsockets) (proxy ["vpn"] "http://headscale" enableWebsockets)