{ lib, config, proxyReverse, setup, ... }: let cfg = config.my.servers.multi-scrobbler; in { options.my.servers.multi-scrobbler = setup.mkOptions "multi-scrobbler" "scrobble" 9078; config = lib.mkIf cfg.enable { sops.secrets.multi-scrobbler.sopsFile = ../../secrets/env.yaml; virtualisation.oci-containers.containers.multi-scrobbler = { image = "foxxmd/multi-scrobbler:latest"; ports = [ "${toString cfg.port}:${toString cfg.port}" ]; environmentFiles = [ config.sops.secrets.multi-scrobbler.path ]; environment = { TZ = "America/Mexico_City"; PUID = "1000"; PGID = "100"; BASE_URL = cfg.url; DEEZER_REDIRECT_URI = "http://${config.my.miniserver-ip}:${toString cfg.port}/deezer/callback"; MALOJA_URL = config.my.servers.maloja.url; WS_ENABLE = "true"; }; volumes = [ "${config.my.containerData}/multi-scrobbler:/config" ]; labels = { "flame.type" = "application"; "flame.name" = "Multi-scrobbler"; "flame.url" = cfg.url; "flame.icon" = "broadcast"; }; }; services.nginx.virtualHosts."${cfg.host}" = proxyReverse cfg.port // { }; }; }