{ config, pkgs, lib, mkDomain, ... }:
{
  # trivial gradios

  /** /
  nixpkgs.overlays = [
    (final: prev: {
      python3Packages = prev.python3Packages.override (old: {
        overrides = final: prev: {
          #shap             = final.callPackage /home/pbsds/repos/nixpkgs-catboost/pkgs/development/python-modules/shap { };
          #catboost         = final.callPackage /home/pbsds/repos/nixpkgs-catboost/pkgs/development/python-modules/catboost { };
          analytics-python = final.callPackage /home/pbsds/repos/nixpkgs-gradio/pkgs/development/python-modules/analytics-python { };
          ffmpy            = final.callPackage /home/pbsds/repos/nixpkgs-gradio/pkgs/development/python-modules/ffmpy { };
          markdown-it-py   = final.callPackage /home/pbsds/repos/nixpkgs-gradio/pkgs/development/python-modules/markdown-it-py { };
          gradio           = final.callPackage /home/pbsds/repos/nixpkgs-gradio/pkgs/development/python-modules/gradio { };
          trivial-gradios = final.callPackage ./pkg { };
        };
      });
    })
  ];
  /**/

  /** /
  systemd.services.trivial-gradios-heritage-graph = {
    description = pkgs.python3Packages.trivial-gradios.meta.description;
    after = [ "network.target" ];
    wantedBy = [ "multi-user.target" ];
    serviceConfig = rec {
      User = "trivial-gradios";
      Group = "trivial-gradios";
      DynamicUser = true;
      StateDirectory = "trivial-gradios-heritage-graph";
      WorkingDirectory = "/var/lib/${StateDirectory}";
      ExecStart = "${pkgs.python3Packages.trivial-gradios}/bin/trivial-gradios-heritage-graph --port 37001";
      Restart = "on-failure";
    };
  };
  services.nginx.virtualHosts.${mkDomain "gradio"} = {
    forceSSL = true; # addSSL = true;
    enableACME = true; #useACMEHost = acmeDomain;
    locations."/" = {
      root = pkgs.writeTextDir "index.html" ''
        <table>
        <tr>
          <th>name
          <th>description
        <tr>
          <td><a href="heritage-graph/">heritage-graph</a>
          <td>A simple tool to greate a directed ancestry graph.
        </table>
      '';
    };
    locations."/heritage-graph/" = {
      proxyPass = "http://127.0.0.1:37001";
      proxyWebsockets = true;
      extraConfig = ''
        rewrite ^/heritage-graph(/.*)$ $1 break;
      '';
    };

  };
  /**/

}