nixos-config/modules/navidrome.nix

57 lines
1.4 KiB
Nix
Raw Normal View History

2024-08-27 23:54:22 +02:00
{ config, ... }:
2022-11-24 18:22:26 +01:00
let
2024-08-27 23:54:22 +02:00
cfg = import ./vars.nix;
2022-11-24 18:22:26 +01:00
domain = "music.mc-fucker.cool";
2024-08-27 23:54:22 +02:00
port = cfg.navidrome.port;
2022-11-24 18:22:26 +01:00
in
2022-03-15 15:25:27 +01:00
{
2024-08-27 23:54:22 +02:00
imports = [
./nginx.nix
];
2024-08-27 23:54:22 +02:00
sops.secrets."navidrome" = {};
virtualisation.oci-containers.containers.navidrome = {
image = "docker.io/deluan/navidrome";
environment = {
TZ = "Europe/Berlin";
ND_SESSIONTIMEOUT = "336h";
2025-06-06 10:24:45 +02:00
ND_SCANNER_ENABLED = "false";
2022-03-15 15:25:27 +01:00
};
2024-08-27 23:54:22 +02:00
environmentFiles = [ config.sops.secrets.navidrome.path ];
ports = [
"${port}:${port}"
];
volumes = [
"/var/lib/navidrome:/data"
"/mnt/mergerfs/media/music:/music:ro"
];
extraOptions = cfg.podman.extraOptions;
autoStart = false;
2022-03-15 15:25:27 +01:00
};
2024-08-27 23:54:22 +02:00
2022-11-24 18:22:26 +01:00
services.nginx.virtualHosts."${domain}" = {
2022-03-15 15:25:27 +01:00
forceSSL = true;
enableACME = true;
locations."/" = {
2024-08-27 23:54:22 +02:00
proxyPass = "http://127.0.0.1:${port}";
extraConfig = ''
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Protocol $scheme;
proxy_set_header X-Forwarded-Host $http_host;
proxy_buffering off;
'';
2022-03-15 15:25:27 +01:00
};
2022-11-24 18:22:26 +01:00
extraConfig = ''
access_log /var/log/nginx/${domain}_access.log;
error_log /var/log/nginx/${domain}_error.log;
'';
2022-03-15 15:25:27 +01:00
};
2024-08-27 23:54:22 +02:00
2022-03-15 15:25:27 +01:00
}
# vim: set et ts=2 sw=2 ai: