Files
nixos/modules/navidrome.nix
Melvin Ragusa 2505298449 Normalize Nix module formatting and update flake.lock
Consistently format module argument blocks and convert aligned
package comments to inline comments. Trim trailing whitespace and
minor layout tweaks across modules. Bump opencode rev, narHash and
lastModified in flake.lock and remove the original dev ref.
2026-02-02 18:08:01 +01:00

60 lines
1.6 KiB
Nix

# modules/navidrome.nix
# Self-hosted music streaming server
{
config,
pkgs,
lib,
...
}:
{
# ═══════════════════════════════════════════════════════════════
# NAVIDROME MUSIC SERVER
# ═══════════════════════════════════════════════════════════════
services.navidrome = {
enable = true;
settings = {
# Music library location
MusicFolder = "/home/pinj/Music";
# Server settings
Address = "0.0.0.0";
Port = 4533;
# UI settings
UIWelcomeMessage = "Welcome to Navidrome!";
# Enable transcoding (requires ffmpeg)
EnableTranscodingConfig = true;
# Scan settings
ScanSchedule = "@every 1h"; # Rescan library every hour
# Last.fm scrobbling (configure in UI after setup)
LastFM.Enabled = true;
# Enable sharing features
EnableSharing = true;
# Enable covers from external sources
CoverArtPriority = "cover.*, folder.*, front.*, embedded, external";
# Session timeout (24 hours)
SessionTimeout = "24h";
# Enable Prometheus metrics (optional)
# Prometheus.Enabled = true;
};
};
# Open firewall for Navidrome
# Remove or comment out if you only access locally
networking.firewall.allowedTCPPorts = [ 4533 ];
# Ensure music directory exists and has correct permissions
systemd.tmpfiles.rules = [
"d /home/pinj/Music 0755 pinj users -"
];
}