Move static websites from hetznix to nixedo
This commit is contained in:
parent
c2e4f80364
commit
ebf9778b42
24 changed files with 211 additions and 257 deletions
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
services.caddy.enable = true;
|
||||
|
||||
imports = [ ./vhosts ];
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
services.caddy.virtualHosts."bootstrap-with-tailwind.oliverdavies.uk" = {
|
||||
useACMEHost = "oliverdavies.uk";
|
||||
|
||||
extraConfig = ''
|
||||
encode gzip
|
||||
root * /var/www/vhosts/bootstrap-with-tailwind.oliverdavies.uk
|
||||
file_server
|
||||
header X-Robots-Tag "noindex, nofollow"
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
{
|
||||
imports = [
|
||||
./bootstrap-with-tailwind.oliverdavies.uk.nix
|
||||
./eric.nix
|
||||
./florida-drupalcamp-tailwind-css.oliverdavies.uk.nix
|
||||
./luke.oliverdavies.uk.nix
|
||||
./phpsw-sculpin-demo.oliverdavies.uk.nix
|
||||
./rebuilding-acquia.oliverdavies.uk.nix
|
||||
./rebuilding-bartik.oliverdavies.uk.nix
|
||||
./rebuilding-bristol-js.oliverdavies.uk.nix
|
||||
./rebuilding-symfony.oliverdavies.uk.nix
|
||||
./tailwindcss-demo.oliverdavies.uk.nix
|
||||
./talking-drupal-tailwindcss.oliverdavies.uk.nix
|
||||
./wp-tailwind.oliverdavies.uk.nix
|
||||
./www.oliverdavies.uk.nix
|
||||
./zet.oliverdavies.uk.nix
|
||||
];
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
services.caddy.virtualHosts."eric.oliverdavies.uk" = {
|
||||
useACMEHost = "oliverdavies.uk";
|
||||
|
||||
extraConfig = ''
|
||||
encode gzip
|
||||
root * /var/www/vhosts/eric
|
||||
file_server
|
||||
header X-Robots-Tag "noindex, nofollow"
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
services.caddy.virtualHosts."florida-drupalcamp-tailwind-css.oliverdavies.uk" = {
|
||||
useACMEHost = "oliverdavies.uk";
|
||||
|
||||
extraConfig = ''
|
||||
encode gzip
|
||||
root * /var/www/vhosts/florida-drupalcamp-tailwind-css.oliverdavies.uk
|
||||
file_server
|
||||
header X-Robots-Tag "noindex, nofollow"
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
services.caddy.virtualHosts."luke.oliverdavies.uk" = {
|
||||
useACMEHost = "oliverdavies.uk";
|
||||
|
||||
extraConfig = ''
|
||||
encode gzip
|
||||
root * /var/www/vhosts/luke.oliverdavies.uk
|
||||
file_server
|
||||
header X-Robots-Tag "noindex, nofollow"
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
services.caddy.virtualHosts."phpsw-sculpin-demo.oliverdavies.uk" = {
|
||||
useACMEHost = "oliverdavies.uk";
|
||||
|
||||
extraConfig = ''
|
||||
encode gzip
|
||||
root * /var/www/vhosts/phpsw-sculpin-demo.oliverdavies.uk
|
||||
file_server
|
||||
header X-Robots-Tag "noindex, nofollow"
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
services.caddy.virtualHosts."rebuilding-acquia.oliverdavies.uk" = {
|
||||
useACMEHost = "oliverdavies.uk";
|
||||
|
||||
extraConfig = ''
|
||||
encode gzip
|
||||
root * /var/www/vhosts/rebuilding-acquia.oliverdavies.uk
|
||||
file_server
|
||||
header X-Robots-Tag "noindex, nofollow"
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
services.caddy.virtualHosts."rebuilding-bartik.oliverdavies.uk" = {
|
||||
useACMEHost = "oliverdavies.uk";
|
||||
|
||||
extraConfig = ''
|
||||
encode gzip
|
||||
root * /var/www/vhosts/rebuilding-bartik.oliverdavies.uk
|
||||
file_server
|
||||
header X-Robots-Tag "noindex, nofollow"
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
services.caddy.virtualHosts."rebuilding-bristol-js.oliverdavies.uk" = {
|
||||
useACMEHost = "oliverdavies.uk";
|
||||
|
||||
extraConfig = ''
|
||||
encode gzip
|
||||
root * /var/www/vhosts/rebuilding-bristol-js.oliverdavies.uk
|
||||
file_server
|
||||
header X-Robots-Tag "noindex, nofollow"
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
services.caddy.virtualHosts."rebuilding-symfony.oliverdavies.uk" = {
|
||||
useACMEHost = "oliverdavies.uk";
|
||||
|
||||
extraConfig = ''
|
||||
encode gzip
|
||||
root * /var/www/vhosts/rebuilding-symfony.oliverdavies.uk
|
||||
file_server
|
||||
header X-Robots-Tag "noindex, nofollow"
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
services.caddy.virtualHosts."tailwindcss-demo.oliverdavies.uk" = {
|
||||
useACMEHost = "oliverdavies.uk";
|
||||
|
||||
extraConfig = ''
|
||||
encode gzip
|
||||
root * /var/www/vhosts/tailwindcss-demo.oliverdavies.uk
|
||||
file_server
|
||||
header X-Robots-Tag "noindex, nofollow"
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
services.caddy.virtualHosts."talking-drupal-tailwindcss.oliverdavies.uk" = {
|
||||
useACMEHost = "oliverdavies.uk";
|
||||
|
||||
extraConfig = ''
|
||||
encode gzip
|
||||
root * /var/www/vhosts/talking-drupal-tailwindcss.oliverdavies.uk
|
||||
file_server
|
||||
header X-Robots-Tag "noindex, nofollow"
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
services.caddy.virtualHosts."wp-tailwind.oliverdavies.uk" = {
|
||||
useACMEHost = "oliverdavies.uk";
|
||||
|
||||
extraConfig = ''
|
||||
encode gzip
|
||||
root * /var/www/vhosts/wp-tailwind.oliverdavies.uk
|
||||
file_server
|
||||
header X-Robots-Tag "noindex, nofollow"
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -1,71 +0,0 @@
|
|||
{
|
||||
services.caddy.virtualHosts = {
|
||||
"oliverdavies.uk" = {
|
||||
useACMEHost = "oliverdavies.uk";
|
||||
|
||||
extraConfig = ''
|
||||
redir https://www.oliverdavies.uk{uri}
|
||||
'';
|
||||
};
|
||||
|
||||
"www.oliverdavies.uk" = {
|
||||
useACMEHost = "oliverdavies.uk";
|
||||
|
||||
extraConfig =
|
||||
let
|
||||
tomePaths = [
|
||||
"core"
|
||||
"sites/default/files"
|
||||
"themes/custom/opdavies"
|
||||
"tome-test"
|
||||
];
|
||||
|
||||
tomeConfig = builtins.concatStringsSep "\n\n" (
|
||||
builtins.map (path: ''
|
||||
handle /${path} {
|
||||
root * /var/www/vhosts/www.oliverdavies.uk-tome
|
||||
file_server
|
||||
}
|
||||
|
||||
handle_path /${path}/* {
|
||||
root * /var/www/vhosts/www.oliverdavies.uk-tome/${path}
|
||||
file_server
|
||||
}
|
||||
'') tomePaths
|
||||
);
|
||||
|
||||
redirects = import ./www.oliverdavies.uk-redirects.nix;
|
||||
|
||||
redirectLines = builtins.concatStringsSep "\n" (
|
||||
map (r: "redir ${r.from} ${r.to} permanent") redirects
|
||||
);
|
||||
in
|
||||
''
|
||||
encode gzip
|
||||
file_server
|
||||
root * /var/www/vhosts/www.oliverdavies.uk-sculpin
|
||||
|
||||
handle_errors {
|
||||
@404 {
|
||||
expression {http.error.status_code} == 404
|
||||
}
|
||||
|
||||
rewrite @404 /404/index.html
|
||||
file_server
|
||||
}
|
||||
|
||||
${tomeConfig}
|
||||
|
||||
@articles path_regexp ^/articles/(.*)$
|
||||
@talks path_regexp ^/talks/(.*)$
|
||||
@talks-archive path_regexp ^/talks/archive/(.*)$
|
||||
|
||||
redir @articles /blog/{re.1} permanent
|
||||
redir @talks-archive /presentations/{re.1} permanent
|
||||
redir @talks /presentations/{re.1} permanent
|
||||
|
||||
${redirectLines}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
services.caddy.virtualHosts."zet.oliverdavies.uk" = {
|
||||
useACMEHost = "oliverdavies.uk";
|
||||
|
||||
extraConfig = ''
|
||||
encode gzip
|
||||
root * /var/www/vhosts/zet.oliverdavies.uk
|
||||
file_server
|
||||
header X-Robots-Tag "noindex, nofollow"
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -1,6 +1,5 @@
|
|||
{
|
||||
imports = [
|
||||
./caddy
|
||||
./jitsi.nix
|
||||
./openssl.nix
|
||||
];
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
imports = with inputs.self.nixosModules; [
|
||||
./hardware-configuration.nix
|
||||
./secrets.nix
|
||||
./services.nix
|
||||
|
||||
mixins-common
|
||||
mixins-docker
|
||||
|
@ -25,6 +24,7 @@
|
|||
./modules/forgejo.nix
|
||||
./modules/immich.nix
|
||||
./modules/jellyfin.nix
|
||||
./modules/nginx
|
||||
./modules/paperless.nix
|
||||
];
|
||||
|
||||
|
|
|
@ -7,10 +7,6 @@
|
|||
tunnels."e1514105-327f-4984-974e-e2fbaca76466" = {
|
||||
credentialsFile = config.age.secrets.cloudflared.path;
|
||||
default = "http_status:404";
|
||||
|
||||
ingress = {
|
||||
"bootstrap-with-tailwind.oliverdavies.uk" = "http://localhost:8000";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
51
hosts/nixedo/modules/nginx/default.nix
Normal file
51
hosts/nixedo/modules/nginx/default.nix
Normal file
|
@ -0,0 +1,51 @@
|
|||
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 ];
|
||||
}
|
87
hosts/nixedo/modules/nginx/sites.nix
Normal file
87
hosts/nixedo/modules/nginx/sites.nix
Normal file
|
@ -0,0 +1,87 @@
|
|||
[
|
||||
{
|
||||
url = "bootstrap-with-tailwind.oliverdavies.uk";
|
||||
root = "/var/www/bootstrap-with-tailwind";
|
||||
port = 8081;
|
||||
}
|
||||
|
||||
{
|
||||
port = 8084;
|
||||
root = "/var/www/eric";
|
||||
url = "eric.oliverdavies.uk";
|
||||
|
||||
extraConfig = ''
|
||||
add_header X-Robots-Tag "noindex, nofollow";
|
||||
'';
|
||||
}
|
||||
|
||||
{
|
||||
port = 8083;
|
||||
root = "/var/www/florida-drupalcamp-tailwind-css";
|
||||
url = "florida-drupalcamp-tailwind-css.oliverdavies.uk";
|
||||
}
|
||||
|
||||
{
|
||||
port = 8094;
|
||||
root = "/var/www/luke";
|
||||
url = "luke.oliverdavies.uk";
|
||||
|
||||
extraConfig = ''
|
||||
add_header X-Robots-Tag "noindex, nofollow";
|
||||
'';
|
||||
}
|
||||
|
||||
{
|
||||
port = 8085;
|
||||
root = "/var/www/phpsw-sculpin-demo";
|
||||
url = "phpsw-sculpin-demo.oliverdavies.uk";
|
||||
}
|
||||
|
||||
{
|
||||
port = 8086;
|
||||
root = "/var/www/rebuilding-acquia";
|
||||
url = "rebuilding-acquia.oliverdavies.uk";
|
||||
}
|
||||
|
||||
{
|
||||
port = 8087;
|
||||
root = "/var/www/rebuilding-bartik";
|
||||
url = "rebuilding-bartik.oliverdavies.uk";
|
||||
}
|
||||
|
||||
{
|
||||
port = 8088;
|
||||
root = "/var/www/rebuilding-bristol-js";
|
||||
url = "rebuilding-bristol-js.oliverdavies.uk";
|
||||
}
|
||||
|
||||
{
|
||||
port = 8089;
|
||||
root = "/var/www/rebuilding-symfony";
|
||||
url = "rebuilding-symfony.oliverdavies.uk";
|
||||
}
|
||||
|
||||
{
|
||||
port = 8090;
|
||||
root = "/var/www/tailwindcss-demo";
|
||||
url = "tailwindcss-demo.oliverdavies.uk";
|
||||
}
|
||||
|
||||
{
|
||||
port = 8091;
|
||||
root = "/var/www/wp-tailwind";
|
||||
url = "wp-tailwind.oliverdavies.uk";
|
||||
}
|
||||
|
||||
{
|
||||
port = 8092;
|
||||
root = "/var/www/zet";
|
||||
url = "zet.oliverdavies.uk";
|
||||
}
|
||||
|
||||
{
|
||||
port = 8093;
|
||||
root = "/var/www/talking-drupal-tailwindcss";
|
||||
url = "talking-drupal-tailwindcss.oliverdavies.uk";
|
||||
}
|
||||
]
|
72
hosts/nixedo/modules/nginx/www.oliverdavies.uk.nix
Normal file
72
hosts/nixedo/modules/nginx/www.oliverdavies.uk.nix
Normal file
|
@ -0,0 +1,72 @@
|
|||
let
|
||||
port = 8095;
|
||||
|
||||
redirects = import ./www.oliverdavies.uk-redirects.nix;
|
||||
|
||||
redirectLines = builtins.concatStringsSep "\n" (
|
||||
map (r: "rewrite ^${r.from}/?$ ${r.to} redirect;") redirects
|
||||
);
|
||||
|
||||
tomePaths = [
|
||||
"core"
|
||||
"sites/default/files"
|
||||
"themes/custom/opdavies"
|
||||
"tome-test"
|
||||
];
|
||||
|
||||
tomeLocations = builtins.listToAttrs (
|
||||
map (path: {
|
||||
name = "/${path}";
|
||||
|
||||
value = {
|
||||
root = "/var/www/website-tome";
|
||||
tryFiles = "$uri $uri.html $uri/index.html =404";
|
||||
};
|
||||
}) tomePaths
|
||||
);
|
||||
in
|
||||
{
|
||||
services = {
|
||||
nginx.virtualHosts = {
|
||||
"www.oliverdavies.uk" = {
|
||||
root = "/var/www/website-sculpin";
|
||||
|
||||
listen = [
|
||||
{
|
||||
inherit port;
|
||||
|
||||
addr = "localhost";
|
||||
}
|
||||
];
|
||||
|
||||
locations = tomeLocations // {
|
||||
"/".tryFiles = "$uri $uri.html $uri/index.html =404";
|
||||
};
|
||||
|
||||
extraConfig = ''
|
||||
port_in_redirect off;
|
||||
|
||||
# Remove trailing slashes.
|
||||
rewrite ^/(.*)/$ /$1 permanent;
|
||||
|
||||
error_page 404 /404;
|
||||
|
||||
rewrite ^/talks/archive/?$ /talks permanent;
|
||||
rewrite ^/talks/(.*)$ /presentations/$1 permanent;
|
||||
rewrite ^/talks/?$ /presentations permanent;
|
||||
|
||||
${redirectLines}
|
||||
'';
|
||||
};
|
||||
|
||||
"oliverdavies.uk".globalRedirect = "www.oliverdavies.uk";
|
||||
};
|
||||
|
||||
cloudflared.tunnels."e1514105-327f-4984-974e-e2fbaca76466" = {
|
||||
ingress = {
|
||||
"oliverdavies.uk" = "http://localhost:${toString port}";
|
||||
"www.oliverdavies.uk" = "http://localhost:${toString port}";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,6 +1,5 @@
|
|||
{
|
||||
services = {
|
||||
caddy.enable = true;
|
||||
openssh.enable = true;
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue