Skip to content

channels.nixos.org (why where how)

Rok Garbas edited this page Mar 6, 2020 · 3 revisions

garbas: I'm dropping this knowledge here before it leaves my brain. I hope to come back and put it in some sort of nicer form.

  • Purpose of channels.nixos.org is to redirect channels to the latest successful release artifact which lays on
  • Acts as mutable storage (in contrast to releases.nixos.org which act as immutable storage)
  • Currently we use S3 bucket where we create empty bucket objects with x-amz-website-redirect-location header which is pointing to location we want to redirect to. At the time of writing we do 2 redirects per channel: (1) $channel -> $target (2) $channel/nixeprs.tar.xz -> $channel/nixeprs.tar.xz
  • S3 bucket is called nix-channels and at the time of writing is configured here: https://github.com/NixOS/nixos-org-configurations/blob/master/terraform/channels.tf
  • a script that changes/uploads this links to artifacts can be found here: https://github.com/NixOS/nixos-channel-scripts/blob/master/mirror-nixos-branch.pl
  • this service is used by nix-channel command line tool