All static release artifacts (e.g. tarballs) have been moved to https://releases.nixos.org. (Nixpkgs and NixOS artifacts were already hosted there.)
Channels (/channels/<project>-<version|channel>), which are basically redirects to https://releases.nixos.org, are being migrated to https://channels.nixos.org, which is just another S3 bucket which handles redirects for us.
More about all of the setup you can find at the following links
As we separate the website from its infrastructure, there is going to be a small yet important change that everybody will have to make.
To install latest Nix you are most likely using the command advertise on the website:
curl https://nixos.org/nix/install | sh
or
curl https://nixos.org/releases/nix/nix-<version>/install | sh
This will need to be changed to:
curl -L https://nixos.org/nix/install | sh
or
curl -L https://nixos.org/releases/nix/nix-<version>/install | sh
When will this change happen?
Ideally we would like to deploy this yesterday. We actually already tried switching to netlify only to find out that this is breaking all installations of Nix. For now migration plan is the following:
On Saturday (2020-03-14 at 11:00 CET) we will switch serving the website from Netlify, but install script (https://nixos.org.nix/install) will be included in the website therefore (1) installing of Nix works as before (2) we can continue working on nixos.org
Next month (on 2020-04-15) we will bring the install script redirect back. That would require everybody to use the -L option when installing Nix via curl. In the meantime we will also make sure that Travis / Github Actions integrations are updated. This should give you enough time to adjust your build systems accordingly.
Make sure you mark those dates in your calendar or better fix your scripts now !
Why are you switching to Netlify?
We are switching away from the current server because we would like to reduce the maintenance burden. At the same time this change will empower anybody that wishes to do changes to the website without risk, since it won’t mess up NixOS channels. And Netlify was chosen because it is a well-known service, which offers very good integration with Github (previews in Pull Requests among other things).
You missed something…
Please let us know if you are using any part of the infrastructure that is being moved and we will gladly make the needed adjustments on time.
That sounds great! Thanks for the work. I’ve a few comments below.
Channels (/channels/<project>-<version|channel>), which are basically redirects to https://releases.nixos.org, are being migrated to https://channels.nixos.org, which is just another S3 bucket which handles redirects for us.
I only get an Error: [object Object] when I load https://channels.nixos.org that page. Curl only reports a bunch of JS on
the site. Is that intended?
On the current version I can use lynx (or any other text browser on the
installer) to navigate the channel list.
Why are you switching to Netlify?
We are switching away from the current server because we would like to
reduce the maintenance burden. At the same time this change will
empower anybody that wishes to do changes to the website without risk,
since it won’t mess up NixOS channels. And Netlify was chosen because
it is a well-known service, which offers very good integration with
Github (previews in Pull Requests among other things).
I think this is the right move. We have to empower more people to
contribute to everything relating to the project.
Did you follow up with them on the IPv6 topic? In 2020 that should be
part of technical baseline requirements. I accept that in the past this
wasn’t possible due to some AWS/NixOps/… issue(s).
It is already bad enought that we require IPv4 due to strictly only
using GitHub.com for contributions. Seeing the website being deployed to
a v4 only service at this day makes my networking heart cry.
You missed something…
Please let us know if you are using any part of the infrastructure
that is being moved and we will gladly make the needed adjustments on
time.
I only get an Error: [object Object] when I load https://channels.nixos.org that page. Curl only reports a bunch of JS on
the site. Is that intended?
This is the intended behavior. As you know directory listing is not possible with S3 buckets. Because of this we included this index.html with a bit of javascript to help people browse the hierarchy.
On the current version I can use lynx (or any other text browser on the
installer) to navigate the channel list.
I think this is the right move. We have to empower more people to
contribute to everything relating to the project.
Thank you.
Did you follow up with them on the IPv6 topic? In 2020 that should be
part of technical baseline requirements. I accept that in the past this
wasn’t possible due to some AWS/NixOps/… issue(s).
It is already bad enought that we require IPv4 due to strictly only
using GitHub.com for contributions. Seeing the website being deployed to
a v4 only service at this day makes my networking heart cry.
I’m aware of the topic. This is something that was not supported before and I’m not seeing it as a blocker. But it would be nice to have this at one point. There is a plan how to get this working but I would let @edolstra provide more information, since I’m not that familiar with all the details.
http://howoldis.herokuapp.com/ seems to be broken in a similar way. It was doing some html parsing that isn’t valid anymore. I’ll need to fix that.
I think we can retire howoldis and just redirect to status.nixos.org - what’s left to port is documentation of how code ends up in channels, but we can just verbatim put it there for now I guess.
I also scraped the howoldis web page, but had converted to json queries on prometheous. Now that that is dead I now get the information directly from GitHub’s rest API. GitHub is a bit parsimonious with such queries, so I just pull the information directly related to my systems, and try to keep my use at a minimum, although 60 calls per hour is not really a hard constraint to meet.
I only discovered Prometheous/Grafana by exploring the status.nixos.org web page, and the API by looking at its javascript code. There is some documentation you can find if you are already looking for it, but it would be nice if there was some tutorial about the nixos.org infrastructure.
Even with the discussion here, I’ve seen no real description about what the plans are.