Compare commits

..

2 Commits

View File

@@ -1,18 +1,30 @@
# Define a very simple webserver to act as a default homepage. # Static websites
{ pkgs, ... }: { lib, config, ... }:
{ let
virtualisation.oci-containers.containers = { inherit (import ./lib.nix config) terakoda havenisms blazestar;
public-homepage = { mkStaticSite = domain: let
cleanDomain = lib.strings.stringAsChars (c: if c == "." then "-" else c) domain;
in {
"${cleanDomain}-static" = {
image = "nginx:alpine"; image = "nginx:alpine";
autoStart = true; autoStart = true;
volumes = [ volumes = [
"/tank/web/static:/usr/share/nginx/html:ro" "/tank/web/${domain}/public:/usr/share/nginx/html:ro"
];
extraOptions = [
"-l=traefik.enable=true"
"-l=traefik.http.routers.public.rule=Host(`havenisms.com`) || Host(`blazestar.net`)"
"-l=traefik.http.services.public.loadbalancer.server.port=80"
]; ];
labels = {
"traefik.enable" = "true";
"traefik.http.routers.${cleanDomain}.rule" = "Host(`${domain}`) || Host(`www.${domain}`)";
"traefik.http.routers.${cleanDomain}.middlewares" = "${cleanDomain}-add-www@docker";
"traefik.http.services.${cleanDomain}.loadbalancer.server.port" = "80";
"traefik.http.middlewares.${cleanDomain}-add-www.redirectregex.regex" = "^https://${domain}/(.*)";
"traefik.http.middlewares.${cleanDomain}-add-www.redirectregex.replacement" = "https://www.${domain}/\${1}";
"traefik.http.middlewares.${cleanDomain}-add-www.redirectregex.permanent" = "true";
}; };
}; };
};
in {
virtualisation.oci-containers.containers =
mkStaticSite terakoda //
mkStaticSite havenisms //
mkStaticSite blazestar;
} }