Hi Hilton!

On 07/09/2025 5:55 pm, Hilton Chain wrote:
Hi Guix,

Apologize for the name change!  I can't resist when I thought of the domain
name...

I'm glad to announce the substitute server I'm running:

     https://ci.boiledscript.com

Now it's https://ci.guix.moe :)

with a blog post for its latest status:

     https://ultrarare.space/en/posts/guix-build-farm/

It builds community channels and provides substitutes for x86_64-linux,
i686-linux and aarch64-linux.  The substitute server opens to adding new
channels, as long as resource permits and undistributable contents are
marked unsubstitutable.

Let me know if you want to add more channels, you can also open an issue
on Codeberg:

     https://codeberg.org/hako/Testament/issues

To use substitutes from the server, you need to authorize its signing
key first:

--8<---------------cut here---------------start------------->8---
echo '(public-key
  (ecc
   (curve Ed25519)
   (q #374EC58F5F2EC0412431723AF2D527AD626B049D657B5633AAAEBC694F3E33F9#)
  )
)' | sudo guix archive --authorize
--8<---------------cut here---------------end--------------->8---

and then use one of its mirrors, currently the following two:

     https://cache-cdn.boiledscript.com
     https://cache-de.boiledscript.com

--8<---------------cut here---------------start------------->8---
guix build hello --substitute-urls="https://cache-cdn.boiledscript.com <...>"
--8<---------------cut here---------------end--------------->8---

New URL for the primary mirror:

     https://cache-cdn.guix.moe

More mirrors!

     Germany:       https://cache-de.guix.moe
     Italy:         https://cache-it.guix.moe     (Thanks poesty!)
     United States: https://cache-us-lax.guix.moe
     Singapore:     https://cache-sg.guix.moe

See <https://ultrarare.space/en/posts/guix-build-farm/#mirrors> for
update-to-date information.

I'll ensure availability of the old domain names on boiledscript.com before
2026.

[...]
This allows mirroring substitutes with rsync and a file server.

Substitutes are also synced to object storage (currently Cloudflare R2
with Cloudflare CDN, a choice to reduce expenses) to facilitate
mirroring without a full clone.

Now there're three approaches to mirror the substitutes, specific steps
are covered in the blog post:

1. Full mirror (rsync + file server)
2. narinfo mirror + reverse proxy
3. narinfo mirror + redirection

Currently the "cache-cdn" mirror uses the 3. approach, to ensure
performance on querying and downloading, however there's a delay on the
redirection so either 1. or 2. is more suitable for future mirrors.  Let
me know if you're interested in hosting one :)

Redirection of cache-cdn is now avoided by using Cloudflare Workers to act as
the frontend, it's truly behind "CDN" now.  In case you dislike Cloudflare, only
cache-cdn is behind it, though mirrors may proxy substitutes from Cloudflare R >
I have migrated the head node to a machine with more storage and started
building Guix channel, reusing substitutes from official servers.  Hopefully it
will be an option for those with slow connection to official servers in a few
days.

I'll keep the build farm running in the long term, so I'm seeking donation on
mirror hosting, and financial support to share the expenses (cache-cdn, object
storage and mirrors I host.  Currently they are for demonstration purpose, I may
strip them out if necessary to reduce the expenses).  More information is
available in the blog post: <https://ultrarare.space/en/posts/guix-build-farm/>


Thanks


I've been using the `ci.boiledscript.org` substitute server for a while now and it has been a treat! I recently switched to the mirror url `cache-cdn.guix.moe` and while the download speeds are good, getting the substitute info is an order of magnitude slower than getting it from Bordeaux or Guix CI. There wasn't a problem when I was downloading straight from the `ci.guix.moe` server itself, so perhaps this is a quirk of Cloudflare?

Anyway, I thought I would mention it as it is a pretty big hindrance for a good UX, and perhaps you haven't noticed it.

Thanks for your work hosting these servers! There's been a couple times now where having this server has saved me from having to wait a few hours for builds to complete on another server, or simply having to build it myself. :)

--
Warmly,
Ada

Reply via email to