@cryptotaxi247 / infra / commits / 38bf1851

Use /experimental-installer instead of /nix

Redirect from /experimental-installer to the experimental installer releases instead of /nix. The installer is still experimental so that should be clear from the URL. Also add a few redirects to make URLs nicer. Redirect /experimental-nix to the latest GitHub release script, /experimental-nix/* to the latest GitHub arch specific installers, and use /experimental-nix/tag/$version/* to redirect to specific releases. This allows for a shorter URL for the most common install instruction, and it more closely mirrors the URL structure used by DetSys which is upstream for experimental-nix-installers https://artifacts.nixos.org/experimental-installer -> https://github.com/NixOS/experimental-nix-installer/releases/latest/download/nix-installer.sh https://artifacts.nixos.org/experimental-installer/* -> https://github.com/NixOS/experimental-nix-installer/releases/latest/download/* https://artifacts.nixos.org/experimental-installer/tag/* -> https://github.com/NixOS/experimental-nix-installer/releases/download/*

Matthew Kenigsberg committed Jul 15, 2025 at 15:37 UTC 38bf185133f85d9fbbef4955b94b1e9ed5738d07
1 file changed +11 -3
terraform/artifacts.tf
+11 -3
@@ -4,7 +4,9 @@
4 # It transparently follows GitHub's S3 redirects to provide direct file access.
5 #
6 # Supported URL patterns:
7 -# - /nix/* -> /NixOS/experimental-nix-installer/releases/download/*
7 +# - /experimental-installer/tag/* -> /NixOS/experimental-nix-installer/releases/download/*
8 +# - /experimental-installer -> /NixOS/experimental-nix-installer/releases/latest/download/nix-installer.sh
9 +# - /experimental-installer/* -> /NixOS/experimental-nix-installer/releases/latest/download/*
10 # - /patchelf/* -> /NixOS/patchelf/releases/download/*
11 #
12 # Testing commands:
@@ -97,8 +99,14 @@ resource "fastly_service_vcl" "artifacts" {
99 content = <<-EOT
100 # Only rewrite if this is the first request (not a restart)
101 if (!req.http.X-Rewritten) {
100 - if (req.url ~ "^/nix/") {
101 - set req.url = regsub(req.url.path, "^/nix/", "/NixOS/experimental-nix-installer/releases/download/");
102 + if (req.url ~ "^/experimental-installer/tag/") {
103 + set req.url = regsub(req.url.path, "^/experimental-installer/tag/", "/NixOS/experimental-nix-installer/releases/download/");
104 + set req.http.X-Rewritten = "true";
105 + } else if (req.url ~ "^(/experimental-installer|/experimental-installer/)$") {
106 + set req.url = regsub(req.url.path, "^(/experimental-installer|/experimental-installer/)$", "/NixOS/experimental-nix-installer/releases/latest/download/nix-installer.sh");
107 + set req.http.X-Rewritten = "true";
108 + } else if (req.url ~ "^/experimental-installer/") {
109 + set req.url = regsub(req.url.path, "^/experimental-installer", "/NixOS/experimental-nix-installer/releases/latest/download/");
110 set req.http.X-Rewritten = "true";
111 } else if (req.url ~ "^/patchelf/") {
112 set req.url = regsub(req.url.path, "^/patchelf/", "/NixOS/patchelf/releases/download/");