Hi Edouard, Edouard Klein <e...@beaver-labs.com> skribis:
> For my clients and my own use, I use a layer on top of operating-system > declarations in which I create functions that take an os as a first > argument, and return an os. > > With the help of the handy -> macro, I can chain them, thus allowing an > easy stacking of multiple "roles" or "functionalities" on the same > machine, and an easy transfer of said functionality to another machine: > just cut and paste one line from one declaration to the other. > > I have written a tutorial for my clients here: > > https://guix-hosting.com/docs/tuto/getting-started.html Very nice! > After a few months of experience, and positive feedback from my clients, > my question to you guys is: would you be interested in mainlining this, > or should I keep my development efforts separate in my channel ? I think it’s worth considering, taking into account maintenance considerations as Liliana wrote. > I do think this API is easier than manipulating services, and although > extendable services are awesome and a very nifty piece of engineering, > they require quite a good knowledge of scheme and take a while to be > used to, while this new API, while way less powerful, lowers the barrier > to entry for newcomers. Normally, adding a service amounts to adding a line in the ‘services’ field: (operating-system ;; … (services (append (list (service nginx-service-type) …) %base-services))) It is more verbose that what you have, but it’s still roughly one line (or one entry) per service. Another interesting bit in your channel are templates though: an OS template for hosting at OVH, etc. These are very valuable because they take care of all the boilerplate. Thanks for sharing! Ludo’.