Home

infra @9e9d01d3a7a385ef214288b72455566d67ec9155 - refs - log -
-
https://git.jolheiser.com/infra.git
dragonwell flake
infra / dragonwell / services / go.nix
- raw -
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
{ jolheiser, ... }:
let
  altModules = [
    {
      name = "hcaptcha";
      repo = "gitea.com/jolheiser/hcaptcha";
    }
    {
      name = "pwn";
      repo = "gitea.com/jolheiser/pwn";
    }
  ];
  host = "go.${jolheiser.domain}";
  redirects = builtins.concatStringsSep "\n" (
    builtins.map (module: ''
      respond /${module.name}* `<html><head>
                <meta name="go-import" content="${host}/${module.name} git https://${module.repo}.git">
                <meta http-equiv="refresh" content="3; url=https://pkg.go.dev/${host}/${module.name}" />
                </head><body>
                Redirecting to <a href="https://pkg.go.dev/${host}/${module.name}">https://pkg.go.dev/${host}/${module.name}</a>
                </body></html>`
    '') altModules
  );
in
{
  services.caddy.virtualHosts."${host}" = {
    extraConfig = ''
      header Content-Type text/html
      ${redirects}
      respond /* `<html><head>
        <meta name="go-import" content="${host}{path} git https://git.jolheiser.com{path}.git">
        <meta http-equiv="refresh" content="3; url=https://pkg.go.dev/${host}{path}" />
        </head><body>
        Redirecting to <a href="https://pkg.go.dev/${host}{path}">https://pkg.go.dev/${host}{path}</a>
        </body></html>`
    '';
  };
}