Announcement: Moving nixos.org to Netlify

What will change?

How will this affect me?

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:

  1. 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
  2. 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 ! :slight_smile:

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.

I wish your builds to always be green.

11 Likes

That sounds great! Thanks for the work. I’ve a few comments below.

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).

:+1: 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.

What will happen to https://nixos.org/~eelco ? I usually use that to
link to the Nix related papers (e.g.
https://nixos.org/~eelco/pubs/phd-thesis.pdf) that Eelco authored. The
preview (https://nixos-homepage.netlify.com) doesn’t seem to support
that. Would be a shame to see the relevant docs be only visible on
3rd-party websites.

6 Likes

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.

Text browsing is not going to be possible anymore. You can load an xml view from http://nix-channels.s3.amazonaws.com

The same applies to https://releases.nixos.org.

:+1: 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.

What will happen to https://nixos.org/~eelco ? I usually use that to
link to the Nix related papers (e.g.
https://nixos.org/~eelco/pubs/phd-thesis.pdf) that Eelco authored. The
preview (https://nixos-homepage.netlify.com) doesn’t seem to support
that. Would be a shame to see the relevant docs be only visible on
3rd-party websites.

There is definitely a lot of good content there. I’m sure @edolstra has a plan what to do with his website.

Thanks Garbas :slight_smile:

Released https://github.com/cachix/install-nix-action/releases/tag/v8 to be compatible on 2020-04-15.

1 Like

@garbas :wave: thanks for improving the website infrastructure!

What about the NixOps website? https://nixos-homepage.netlify.com/nixops seems to be redirecting to the GitHub repo.

We’ve switched to Netlify. Please report any problems you encounter here or in the nixos-homepage repository.

@joko We’ve made the Hydra and NixOps pages redirect to their GitHub repositories since they didn’t have a lot of content.

@andir Here is the issue for IPv6 support: https://github.com/NixOS/nixos-homepage/issues/341

3 Likes

Why do you use GitHub actions to build the site instead of Netlify build?

I think Netlify is a good choice. They contribute a lot to open source!

They don’t support Nix in their docker image (which can’t be custom).

Not sure if it’s directly related, but I noticed that https://status.nixos.org/ is broken, at least for me, after the switch.

It could be.

This query is now an empty set.

Looking at two points in time:

We can see when prometheus stopped seeing the channels. cc @grahamc

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 don’t know if status.nixos.org relates to this, though.

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.

2 Likes

Yes, I personally preferred that, but first “we” need to make it work again :slight_smile:

On the following page [1] the info for “nixos-unstable” is missing.

[1] https://nixos.org/nixos/packages.html

Where did https://nixos.org/~eelco go? At least https://nixos.org/~eelco/pubs/ should still be of interest because it hosts several important papers.

See comment further up:

For now you can use the archive: http://web.archive.org/web/20191205232223/https://nixos.org/~eelco/pubs/

Oops, I missed that because I thought it was just replying to one thing. Got it, thanks.

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.

status.nixos.org should be back soon. It had some trouble with missing redirects.

4 Likes

Hi,

https://nixos.org/nix-dev “could not be found.”
The old mailing list archive is unreacheable.