Setting up a FabLab with update cache

Hi All

I’m currently working with a startup Fablab to setup a suite of desktops for public use.

I have setup a rough GitHub repo to inject the Kickstart file into a release ISO of Kinonite or SilverBlue, which provisions the install and root account with minimal user interaction, and post login links to a script to setup the “MakerSpace” user account, as a password-less login, and installs the desired software packages.

Is there anything for RPM-Ostree & Flatpack that can locally cache an update, and then allow for use across the group of workstations (to reduce internet bandwidth use)? Ideally something like DNF Local

Is it better to post more smaller to the point questions here, or create a bigger post with multiple questions/issues?

Hello @alextrical ,
You may want to look at this Compose Server - rpm-ostree to get started. But you can have a local repo, and rpm-ostree compose will build a image tree. The details about repo management are pointed to from this doc.

I don’t think that’s what they want as they probably want to use the official images, not build their own.

For ostree, you would need to mirror the ostree repo (which can be quite large) and then configure the mirror in the ostree remotes on the clients. Unfortunately it’s not easy right now but this will be easier once we switch to container images for updates.

For Flatpaks, that depends on whether you’re using the Fedora ones or the Flathub ones.

Note that this is the legacy docs that are not up-to-date anymore. The new ones are at Compose server | rpm-ostree

Ideally i was looking for something that can share out updates from the local cluster of workstations, Similar to windows updates local network sharing. As all workstations will pretty much need the same updates, i was hoping there would be a quick win to reduce the load on the internet bandwidth, as its a relatively slow connection at the MakerSpace. If there is no distributed update cache (like DNF Local), then a workstation may to be setup as a local update server, I will take a look and see how that goes :slight_smile:

As for the flatpacks, all the application packages the owner has requested are available on Flathub

Flathub is an ostree repo so that would be the same procedure.

Maybe you should be able to configure an caching HTTP proxy for those.

Oh, I wasn’t aware they where that similar, I was thinking of following this guide to setup a NGINX cache. (also tempted to set one up on my NAS for home lab too)

Out of curiosity do you know how to cache the updates from rpm-ostree with NGINX, if that is possible that would be pretty useful for the use case, and have a single cache server. However i haven’t been able to find the correct keywords to use a NGINX cache to be able to serve an update to multiple clients requiring the same file

I believe the Fedora ostree variants received the feature to be based on containers, maybe that could be useful here?

Its possible, I’m going to talk to the FabLab owner tomorrow to see if they have resource to run a central server to try this out on :slight_smile: