{ config, pkgs, lib, mkDomain, ... }:
{
  # Sourcegraph
  # Understand, fix, and automate across your codebase with this code intelligence platform

  /** /
  # First user regitration becomes admin
  # data can be destryoed with `nixos-container destroy sourcegraph`
  virtualisation.oci-containers.containers."sourcegraph" = {
    autoStart = true;
    #image = "sourcegraph/server:3.41.0";
    #image = "sourcegraph/server:latest";
    image = "sourcegraph/server:insiders";
    environment = {};
    ports = [
      "127.0.0.1:7080:7080/tcp" # webui?
      "127.0.0.1:3370:3370/tcp" # admin? (graphana and stuff)
    ];
    volumes = [
      "/var/lib/sourcegraph/config:/etc/sourcegraph"
      "/var/lib/sourcegraph/data:/var/opt/sourcegraph"
    ];
  };
  systemd.services."create-sourcegraph-volume-dirs" = {
    wantedBy = [ "${config.virtualisation.oci-containers.backend}-sourcegraph.service" ];
    serviceConfig.Type = "oneshot";
    script = ''
      mkdir -p /var/lib/sourcegraph/config
      mkdir -p /var/lib/sourcegraph/data
    '';
  };
  services.nginx.virtualHosts.${mkDomain "sourcegraph"}
  = lib.mkIf config.virtualisation.oci-containers.containers."sourcegraph".autoStart {
    forceSSL = true; # addSSL = true;
    enableACME = true; #useACMEHost = acmeDomain;
    locations."/" = {
      proxyPass = "http://127.0.0.1:7080";
      proxyWebsockets = true;
    };
    #locations."/graphana/" = {
    #  proxyPass = "http://127.0.0.1:3370";
    #  proxyWebsockets = true;
    #};
  };
  /**/

}
