# A FLOSS media server
{ config, lib, ... }:
let
  cfg = config.my.services.jellyfin;
  domain = config.networking.domain;
  jellyfinDomain = "jellyfin.${config.networking.domain}";
in
{
  options.my.services.jellyfin = {
    enable = lib.mkEnableOption "Jellyfin Media Server";
  };

  config = lib.mkIf cfg.enable {
    services.jellyfin = {
      enable = true;
      group = "media";
    };

    # Proxy to Jellyfin
    services.nginx.virtualHosts."${jellyfinDomain}" = {
      forceSSL = true;
      useACMEHost = domain;

      locations."/" = {
        proxyPass = "http://localhost:8096/";
        proxyWebsockets = true;
      };
    };
  };
}