52 lines
1 KiB
Nix
52 lines
1 KiB
Nix
|
let
|
||
|
sites = import ./sites.nix;
|
||
|
in
|
||
|
{
|
||
|
services = {
|
||
|
nginx = {
|
||
|
enable = true;
|
||
|
|
||
|
virtualHosts = builtins.listToAttrs (
|
||
|
map (site: {
|
||
|
name = site.url;
|
||
|
|
||
|
value = {
|
||
|
root = site.root;
|
||
|
|
||
|
listen = [
|
||
|
{
|
||
|
addr = "localhost";
|
||
|
port = site.port;
|
||
|
}
|
||
|
];
|
||
|
|
||
|
locations."/".tryFiles = "$uri $uri/index.html =404";
|
||
|
|
||
|
extraConfig = builtins.concatStringsSep "\n\n" [
|
||
|
site.extraConfig or ""
|
||
|
|
||
|
''
|
||
|
port_in_redirect off;
|
||
|
|
||
|
# Remove trailing slashes.
|
||
|
rewrite ^/(.*)/$ /$1 permanent;
|
||
|
''
|
||
|
];
|
||
|
};
|
||
|
}) sites
|
||
|
);
|
||
|
};
|
||
|
|
||
|
cloudflared.tunnels."e1514105-327f-4984-974e-e2fbaca76466" = {
|
||
|
ingress = builtins.listToAttrs (
|
||
|
map (site: {
|
||
|
name = site.url;
|
||
|
value = "http://localhost:${toString site.port}";
|
||
|
}) sites
|
||
|
);
|
||
|
};
|
||
|
};
|
||
|
|
||
|
imports = [ ./www.oliverdavies.uk.nix ];
|
||
|
}
|