diff --git a/hosts/architect/navidrome.nix b/hosts/architect/navidrome.nix index ae3f660..753f059 100644 --- a/hosts/architect/navidrome.nix +++ b/hosts/architect/navidrome.nix @@ -1,91 +1,81 @@ -{ lib, pkgs, ... }: +{ config, lib, pkgs, ... }: let domain = "music.runas.rocks"; - network = import ./network.nix; library_path = "/media/Music"; beets_config = "/media/beets.conf"; - auth_block = (import ./openid.nix { inherit lib; }).openresty_oidc_block; in { - services = { - navidrome = { - enable = true; + services.navidrome = { + enable = true; - settings = { - MusicFolder = library_path; - LastFM.enable = true; - LastFM.ApiKey = "5cef5cb5f9d31326b97d0f929ca9cf20"; - LastFM.Secret = "d1296896126f4caae47407aecf080b25"; - Spotify.ID = "3900c029b4f34f3fb61d554dda64794d"; - Spotify.Secret = "d931ce5575a9401aa5ff8d37558cca0a"; - EnableGravatar = true; - LogLevel = "WARN"; - }; - }; - - nginx.virtualHosts.${domain} = { - forceSSL = true; - enableACME = true; - locations."/" = { - proxyPass = "http://127.0.0.1:4533"; - }; - extraConfig = auth_block { access_role = "navidrome"; }; + settings = { + MusicFolder = library_path; + LastFM.enable = true; + LastFM.ApiKey = "5cef5cb5f9d31326b97d0f929ca9cf20"; + LastFM.Secret = "d1296896126f4caae47407aecf080b25"; + Spotify.ID = "3900c029b4f34f3fb61d554dda64794d"; + Spotify.Secret = "d931ce5575a9401aa5ff8d37558cca0a"; + EnableGravatar = true; + LogLevel = "WARN"; }; }; - systemd.services = { - "beets-update" = { - enable = true; - # requires = [ "remove-badmp3.service" "remove-badflac.service" ]; - before = [ "beets-import.service" ]; - serviceConfig = { - Type = "oneshot"; - ExecStart = "${pkgs.beets}/bin/beet -c ${beets_config} update"; - }; - }; - - "beets-import" = { - enable = true; - path = [ pkgs.imagemagick ]; - requires = [ "beets-update.service" ]; - after = [ "beets-update.service" ]; - serviceConfig = { - Type = "oneshot"; - ExecStart = - "${pkgs.beets}/bin/beet -c ${beets_config} import --flat -q ${library_path}"; - }; - startAt = "weekly"; - }; - - "remove-badmp3" = { - enable = true; - before = [ "beets-import.service" "beets-update.service" ]; - serviceConfig = { - Type = "oneshot"; - ExecStart = '' - ${pkgs.findutils}/bin/find ${library_path} -name "*.mp3" -type f -exec ${pkgs.bash}/bin/sh -c '${pkgs.mp3val}/bin/mp3val "{}" | grep -Pi error 1>/dev/null && ${pkgs.busybox}/bin/rm "{}"' \; - ''; - }; - }; - - "remove-badflac" = { - enable = true; - before = [ "beets-import.service" "beets-update.service" ]; - serviceConfig = { - Type = "oneshot"; - ExecStart = '' - ${pkgs.findutils}/bin/find ${library_path} -name "*.flac" -type f -exec ${pkgs.bash}/bin/sh -c '${pkgs.flac}/bin/flac -st "{}" || ${pkgs.busybox}/bin/rm "{}"' \; - ''; - }; + architect.vhost.${domain} = { + dnsInterfaces = [ "lan" "tailscale" "wireguard" ]; + locations."/" = { + port = 4533; + allowLan = true; + allow = [ config.architect.networks."tailscale".net ]; }; }; - networking.extraHosts = '' - ${network.architect-lan} ${domain} - ${network.architect-wg} ${domain} - ${network.architect-ts} ${domain} - ''; + # systemd.services = { + # "beets-update" = { + # enable = true; + # # requires = [ "remove-badmp3.service" "remove-badflac.service" ]; + # before = [ "beets-import.service" ]; + # serviceConfig = { + # Type = "oneshot"; + # ExecStart = "${pkgs.beets}/bin/beet -c ${beets_config} update"; + # }; + # }; + + # "beets-import" = { + # enable = true; + # path = [ pkgs.imagemagick ]; + # requires = [ "beets-update.service" ]; + # after = [ "beets-update.service" ]; + # serviceConfig = { + # Type = "oneshot"; + # ExecStart = + # "${pkgs.beets}/bin/beet -c ${beets_config} import --flat -q ${library_path}"; + # }; + # startAt = "weekly"; + # }; + + # "remove-badmp3" = { + # enable = true; + # before = [ "beets-import.service" "beets-update.service" ]; + # serviceConfig = { + # Type = "oneshot"; + # ExecStart = '' + # ${pkgs.findutils}/bin/find ${library_path} -name "*.mp3" -type f -exec ${pkgs.bash}/bin/sh -c '${pkgs.mp3val}/bin/mp3val "{}" | grep -Pi error 1>/dev/null && ${pkgs.busybox}/bin/rm "{}"' \; + # ''; + # }; + # }; + + # "remove-badflac" = { + # enable = true; + # before = [ "beets-import.service" "beets-update.service" ]; + # serviceConfig = { + # Type = "oneshot"; + # ExecStart = '' + # ${pkgs.findutils}/bin/find ${library_path} -name "*.flac" -type f -exec ${pkgs.bash}/bin/sh -c '${pkgs.flac}/bin/flac -st "{}" || ${pkgs.busybox}/bin/rm "{}"' \; + # ''; + # }; + # }; + # }; users.groups.media.members = [ "navidrome" ]; }