Personal-use NixOS configuration
at main 75 lines 1.5 kB view raw
1{ 2 hosts ? [ ], 3}: 4 5{ 6 config, 7 flakeLib, 8 pkgs-flake, 9 lib, 10 ... 11}: 12 13let 14 socket = "/run/navidrome/navidrome.sock"; 15in 16{ 17 services.navidrome = { 18 enable = true; 19 20 settings = { 21 Address = "unix:${socket}"; 22 23 DefaultTheme = "Spotify-ish"; 24 DefaultUIVolume = 25; 25 26 EnableCoverAnimation = false; 27 EnableGravatar = false; 28 EnableStarRating = false; 29 MaxSidebarPlaylists = 15; 30 31 EnableSharing = true; 32 EnableDownloads = true; 33 DefaultShareExpiration = "72h"; 34 35 Deezer.Enabled = false; 36 #LastFM.Enabled = false; 37 ListenBrainz.Enabled = false; # TODO: Self-host Maloja 38 AlbumPlayCountMode = "normalized"; 39 40 EnableInsightsCollector = false; 41 42 Tags.genre.Split = [ 43 "; " 44 ", " 45 " / " 46 "/" 47 "\\" 48 ]; 49 50 Scanner.ArtistJoiner = ", "; 51 Scanner.WatcherWait = "1m"; 52 Scanner.ScanOnStartup = false; 53 54 LyricsPriority = ".lrc, embedded"; 55 ArtistArtPriority = "artist.*"; 56 CoverArtPriority = "cover.*, embedded"; 57 EnableMediaFileCoverArt = true; 58 CoverJpegQuality = 100; 59 60 AutoImportPlaylists = false; 61 62 Subsonic.ArtistParticipations = true; 63 64 ImageCacheSize = "2GB"; 65 TranscodingCacheSize = "8GB"; 66 }; 67 }; 68 69 # Caddy reverse proxy configuration 70 users.users.caddy.extraGroups = [ config.users.users.navidrome.group ]; 71 72 services.caddy.virtualHosts = flakeLib.mkProxies hosts '' 73 reverse_proxy unix/${socket} 74 ''; 75}