Hi Guix, > [...] > 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
New mirrors: Finland: https://cache-fi.guix.moe Hong Kong: https://cache-hk.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 Due to performance issue discussed in the thread, I have adjusted configuration of cache-cdn, now it's a narinfo mirror and redirects nar archive requests to a Cloudflare Workers instance, which returns resources stored in Cloudflare R2. The redirection degrades performance, this can be partially mitigated by setting ‘--max-jobs’ to download multiple archives in parallel. > 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. Following recent massive rebuilds, I have changed to pin the commit of guix channel: <https://codeberg.org/hako/guix-pinned>, currently using commit of the ‘guix’ package. I'll update it when other channels are built and I see a good weather. I have set up Guix System on all mirrors and unified their configurations into one procedure. Mirror https://codeberg.org/hako/Testament/src/branch/trunk/config/mirror.org https://codeberg.org/hako/Testament/src/branch/trunk/files/deploy/mirror.scm Cuirass remote worker https://codeberg.org/hako/Testament/src/branch/trunk/config/worker.org https://codeberg.org/hako/Testament/src/branch/trunk/files/deploy/worker.scm Also a repository to help set up Guix installation and Guix System from foreign distro, I plan to rework it soon: https://codeberg.org/hako/guix-setup I created a docker image (built using ‘guix system image’) to deploy Cuirass remote workers. So that machines can be connected into the build farm on more environments in one command. I'll generate keys for you if you're interested. I found that images generated using ‘guix system image’ cannot start Shepherd on foreign distros so I used a customized entry point. It would be better to use Shepherd instead, not sure why and how to solve it at the moment. --8<---------------cut here---------------start------------->8--- docker run --detach --privileged --restart always \ --name "guix-moe-worker" \ --hostname "temp" \ --env CUIRASS_SERVER="100.97.195.93:5555" \ --env CUIRASS_SUBSTITUTE_URLS="https://ci.guix.moe https://bordeaux.guix.gnu.org https://ci.guix.gnu.org" \ --env CUIRASS_SYSTEMS="x86_64-linux,i686-linux" \ --env CUIRASS_WORKERS="4" \ --env GUIX_THREADS_PER_WORKER="4" \ --env GUIX_PUBLIC_KEY="(public-key (ecc ..." \ --env GUIX_PRIVATE_KEY="(private-key (ecc ..." \ --env TAILSCALE_AUTH_KEY="tskey-auth-..." \ --device /dev/net/tun:/dev/net/tun \ ghcr.io/rakino/guix-moe-worker:latest --8<---------------cut here---------------end--------------->8--- and compose.yaml for ‘docker compose’ --8<---------------cut here---------------start------------->8--- services: guix-moe-worker: image: ghcr.io/rakino/guix-moe-worker:latest hostname: temp environment: - CUIRASS_SERVER=100.97.195.93:5555 - CUIRASS_SUBSTITUTE_URLS=https://ci.guix.moe https://bordeaux.guix.gnu.org https://ci.guix.gnu.org - CUIRASS_SYSTEMS=x86_64-linux,i686-linux - CUIRASS_WORKERS=4 - GUIX_THREADS_PER_WORKER=4 - "GUIX_PUBLIC_KEY=(public-key (ecc ..." - "GUIX_PRIVATE_KEY=(private-key (ecc ..." - "TAILSCALE_AUTH_KEY=tskey-auth-..." devices: - /dev/net/tun:/dev/net/tun privileged: true restart: always --8<---------------cut here---------------end--------------->8--- > 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). I'll run the mirrors for at least six months (2026-03-01) and keep the object storage for at least one year (2026-09-01). Thanks
