diff options
Diffstat (limited to '')
-rw-r--r-- | system/services/nginx/default.nix | 16 | ||||
-rw-r--r-- | system/services/nginx/redirects.nix | 6 |
2 files changed, 21 insertions, 1 deletions
diff --git a/system/services/nginx/default.nix b/system/services/nginx/default.nix index 8544475..cc633ed 100644 --- a/system/services/nginx/default.nix +++ b/system/services/nginx/default.nix @@ -1,5 +1,17 @@ {...}: let domains = import ./hosts.nix {}; + importedRedirects = import ./redirects.nix {}; + mkRedirect = { + key, + value, + }: { + name = key; + value = { + forceSSL = false; + enableACME = false; + locations."/".return = "301 ${value}"; + }; + }; mkVirtHost = { domain, root, @@ -27,6 +39,7 @@ virtHosts = builtins.listToAttrs (builtins.map mkVirtHost domains); nixSyncRepositories = builtins.listToAttrs (builtins.map mkNixSyncRepository domains); + redirects = builtins.listToAttrs (builtins.map mkRedirect importedRedirects); in { security.acme = { acceptTerms = true; @@ -41,7 +54,8 @@ in { }; services.nginx = { enable = true; - virtualHosts = virtHosts; + # The merge here is fine, as no domain should be specified twice + virtualHosts = virtHosts // redirects; }; services.nix-sync = { diff --git a/system/services/nginx/redirects.nix b/system/services/nginx/redirects.nix new file mode 100644 index 0000000..a021e72 --- /dev/null +++ b/system/services/nginx/redirects.nix @@ -0,0 +1,6 @@ +{...}: [ + { + key = "source.vhack.eu"; + value = "https://codeberg.org/vhack.eu/nixos-server"; + } +] |