{ config, pkgs, lib, inputs, mkDomain, ... }:
{
  # Invidious
  # An open source alternative front-end to YouTube

  /**/
  #disabledModules = [ "services/web-apps/invidious.nix" ];
  ##imports = [ <nixos-unstable/nixos/modules/services/web-apps/invidious.nix> ];
  #imports = [ ("${inputs.unstable}/nixos/modules/services/web-apps/invidious.nix") ];
  /* services.invidious.package = pkgs.unstable.invidious; */
  /**/

  services.invidious = {
    enable = true;
    domain = mkDomain "invidious";
    address = "127.0.0.1";
    port = 4765;
    # TODO: nginx.enable = true;
    settings = {
      external_port = 443;
      https_only = true;
      statistics_enabled = false; # api endpoint required for public instances
      registration_enabled = false;
      login_enabled = false;
      #admins = ["pbsds"];
      banner = "spis meg";
      db.user = "invidious"; # workaround for stateVersion 23.11
      db.dbname = "invidious"; # workaround for stateVersion 23.11
      default_user_preferences = {
        #feed_menu = ["Popular", "Trending", "Subscriptions", "Playlists"]
        feed_menu = ["Trending" "Subscriptions" "Playlists"];
        default_home = "Trending";
      };
    };
  };
  services.nginx.virtualHosts.${mkDomain "invidious"} = lib.mkIf config.services.invidious.enable {
    forceSSL = true; # addSSL = true;
    enableACME = true; #useACMEHost = acmeDomain;
    locations."/" = {
      proxyPass = "http://127.0.0.1:${toString config.services.invidious.port}";
      proxyWebsockets = true;
    };
  };

}
