Ian Eure <i...@retrospec.tv> writes: > I’d like to provide substitutes for packages in my personal channel. > The ideal setup for this would be for a machine on my internal net to > perform the builds, then upload the results to another system on the > open internet. That could be a machine running a web server pointed > at a directory where the NARs get uploaded, or an S3-like object > store, or something like that -- dirt simple, just shifting bytes off > disk and out a socket. > > It seems that nothing like this exists, all the public substitute > servers appear to use `guix publish'. That’s not an option for me, > since it requires significantly more disk and compute than I have on > any public-facing system, and I can’t justify the cost of bigger > machines. > > What would it take to make a system like this work?
I've run a few substitute servers like this, the required code is actually quite simple and the build coordinator includes the necessary bits in the form of some included hooks [1]. 1: build-success-publish-hook and build-success-s3-publish-hook in https://git.savannah.gnu.org/cgit/guix/build-coordinator.git/tree/guix-build-coordinator/hooks.scm bordeaux.guix.gnu.org used to use the build-success-publish-hook to populate a directory with the narinfo and nar files, and NGinx simply served this directory, although now it uses the nar-herder to manage the nars (it still doesn't use guix publish). Maybe in the future the nar-herder could provide an easy utility for people to serve and manage substitutes like this.
signature.asc
Description: PGP signature