Can't rebuild on IPv6-only because of GitHub's IPv4-only-ness

I’m current at the 39C3 and they’re kinda unwilling to give out IPv4 addresses. Now I can’t update my system because NixOS relies on GitHub which still doesn’t have IPv6 yet. Any ideas how I can update my system?

I’m currently getting this error:

warning: error: unable to download ‘``https://api.github.com/repos/nix-community/disko/commits/latest’:`` Could not connect to server (7) Failed to connect to ``api.github.com`` port 443 after 7056 ms: Could not connect to server; retrying in 289 ms
warning: error: unable to download ‘``https://api.github.com/repos/nix-community/disko/commits/latest’:`` Could not connect to server (7) Failed to connect to ``api.github.com`` port 443 after 3103 ms: Could not connect to server; retrying in 586 ms
warning: error: unable to download ‘``https://api.github.com/repos/nix-community/disko/commits/latest’:`` Could not connect to server (7) Failed to connect to ``api.github.com`` port 443 after 3061 ms: Could not connect to server; retrying in 1292 ms
warning: error: unable to download ‘``https://api.github.com/repos/nix-community/disko/commits/latest’:`` Could not connect to server (7) Failed to connect to ``api.github.com`` port 443 after 3059 ms: Could not connect to server; retrying in 2189 ms

I didn’t find other discussions relating to the same problem yet.

2 Likes

If you have an ipv4 system elsewhere, you can tunnel there. I’ve done that before to rescue a system.

Or just wait to update your inputs. If you want to install a new system without introducing new packages, you can often run it --offline.

Do you have instructions for how to tunnel the GitHub connections? Cheers ^^

Unfortunately that’s a whole rabbithole in-and-of itself. For something quick (and if you can go somewhere that’ll give you an ipv4 for a bit to set up), I’d use tailscale, and set your other machine as an “exit node”. Tailscale has pretty good support on nixos.

I’m not very informed on this, but you could try using a public NAT64 provider, in which you add their DNS server and they’ll MITM IP traffic to translate. Public NAT64 service

1 Like

This isn’t true; you can (should!) use the tarball url (https://channels.nixos.org/nixos-25.11/nixexprs.tar.xz) instead for nixpkgs.

Disko is indeed only distributed via github though.

Another alternative is to build remotely and push the config via ssh with --target-host.

2 Likes

Numtide hosts the https://gh-v6.com/ proxy for this. I think you should be able to use a disko release asset through that proxy to make it reachable over IPv6, e.g. https://gh-v6.com/nix-community/disko/archive/refs/tags/v1.11.0.tar.gz.

Note that nixos-anywhere also documents using gh-v6.com for IPv6-only deployments.

2 Likes