On 2026-01-10, Ludovic Courtès wrote: > Vagrant Cascadian <[email protected]> skribis: > >> (service guix-publish-service-type >> (guix-publish-configuration >> (host "0.0.0.0") >> (port 8086))) > > This listens on IPv4 only, any interface.
Yeah, expected. :)
Although the documentation is a bit misleading about that:
host (default: "localhost")
The host (and thus, network interface) to listen to. Use "0.0.0.0" to
listen on all the network interfaces.
> To listen on IPv6 only, any interface, you need (host "::").
Surprisingly, that worked! And then setting it to the IPv6 address of
the yggdrasil interface also worked. I *thought* I had tried both of
those before, but something *else* must have been wrong too that I
eventually resolved...
> Note that ‘guix-publish’ is defined as a systemd-style service, so it’s
> actually PID 1 setting up those sockets.
I'll just sit here and nod knowingly. :)
>> If I use a hostname that resolves to the ipv6 address ... it works,
>> under very specific conditions... after reconfiguring the system, and
>> then "herd restart guix-publish" (or sometimes only "herd stop
>> guix-publish && herd start guix-publish" !!!). Similar story for just
>> specifying the ipv6 address. But after rebooting it no longer listens on
>> the yggdrasil ipv6 address, and only works by reconfiguring the system
>> *and* restarting guix-publish... every. single. boot.
Apparently using a global IPv6 "::" or a specific IPv6
address... actually does resolve this, yay!
Might it work with an IP address range?
>> I have not yet figured out how to make sure guix-publish only starts
>> after the yggdrasil service starts (and/or name resolution is
>> available?), but in theory that *might* resolve the issue...
>
> Turns out ‘guix-publish-shepherd-service’ calls ‘getaddrinfo’ from the
> top level, before any service is started! This is not great but there’s
> no good solution for that (the idea was that ‘host’ would rather contain
> an IPv4 or IPv6 address).
With the default being "localhost" that seems a bit odd that it expects
an IP address. :)
> But in the end, what exactly does yggdrasil expect?
It provides an IPv6 address on a virtual interface (maybe TUN?)... I am
not sure it has any particular *expectations*, per se!
Anyways, thanks for pointing me back at things I *thought* I already
tried, it is at least working for me now!
Maybe hints at some documentation improvements, at least, too...
live well,
vagrant
signature.asc
Description: PGP signature
