feat(whitby): serve static.tvl.{fyi|su} with max cache settings
The setup is explained in the comment, but TL;DR: Use the derivation hash of static files to create permanent URLs. Relates to b/151. Change-Id: Ib1ca3a1a00c90a47f4bf39c29a8b4bbf5b215e7d Reviewed-on: https://cl.tvl.fyi/c/depot/+/3664 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
This commit is contained in:
parent
9f177062c7
commit
0eef0e343f
2 changed files with 43 additions and 0 deletions
|
@ -32,6 +32,7 @@ in {
|
|||
"${depot.path}/ops/modules/www/images.tvl.fyi.nix"
|
||||
"${depot.path}/ops/modules/www/login.tvl.fyi.nix"
|
||||
"${depot.path}/ops/modules/www/nixery.dev.nix"
|
||||
"${depot.path}/ops/modules/www/static.tvl.fyi.nix"
|
||||
"${depot.path}/ops/modules/www/status.tvl.su.nix"
|
||||
"${depot.path}/ops/modules/www/tazj.in.nix"
|
||||
"${depot.path}/ops/modules/www/todo.tvl.fyi.nix"
|
||||
|
|
42
ops/modules/www/static.tvl.fyi.nix
Normal file
42
ops/modules/www/static.tvl.fyi.nix
Normal file
|
@ -0,0 +1,42 @@
|
|||
# Host the static assets at static.tvl.fyi
|
||||
#
|
||||
# All assets are served from $base/$drvhash/$file, but can also be
|
||||
# included with `latest/` which will return a (non-permanent!)
|
||||
# redirect to the real location.
|
||||
#
|
||||
# For all purposes within depot, using the drvhash of web.static is
|
||||
# recommended.
|
||||
{ depot, pkgs, ... }:
|
||||
|
||||
let staticHash = depot.web.static.drvHash;
|
||||
in {
|
||||
imports = [
|
||||
./base.nix
|
||||
];
|
||||
|
||||
config = {
|
||||
services.nginx.virtualHosts."static.tvl.fyi" = {
|
||||
serverAliases = [ "static.tvl.su" ];
|
||||
enableACME = true;
|
||||
forceSSL = true;
|
||||
|
||||
extraConfig = ''
|
||||
location = / {
|
||||
add_header Content-Type text/plain;
|
||||
return 200 "looking for tvl.fyi or tvl.su?";
|
||||
}
|
||||
|
||||
location /latest {
|
||||
rewrite ^/latest/(.*) /${staticHash}/$1 redirect;
|
||||
}
|
||||
|
||||
location /${staticHash}/ {
|
||||
alias ${depot.web.static}/;
|
||||
expires max;
|
||||
add_header Access-Control-Allow-Origin "*";
|
||||
add_header Cache-Control "public";
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Reference in a new issue