# airsonic is a decent, web-based player UI for subsonic { pkgs, ... }: let env = builtins.toFile "env.js" '' window.env = { SERVER_URL: "https://music.tazj.in", } ''; airsonicDist = pkgs.fetchzip { name = "airsonic-refix"; # from master CI @ f894d5eacebec2f47486f340c8610f446d4f64b3 # https://github.com/tamland/airsonic-refix/actions/runs/6150155527 url = "https://storage.yandexcloud.net/tazjin-public/airsonic-refix-f894d5ea.zip"; sha256 = "02rnh9h7rh22wkghays389yddwbwg7sawmczdxdmjrcnkc7mq2jz"; stripRoot = false; postFetch = "cp ${env} $out/env.js"; }; in { services.nginx.virtualHosts."player.tazj.in" = { enableACME = true; forceSSL = true; root = "${airsonicDist}"; # deal with SPA routing requirements locations."/".extraConfig = "try_files $uri /index.html;"; }; }