[Article Proposal] Building a Fedora IoT Remix

I propose a first, basic and straight forward article to explain basic concepts of Fedora IoT like OSTree, RPM-OSTree, OSTree-remotes and how it all works to build a first minimal custom Fedora IoT based OS on a local workstation. From there many more articles picking different details are possible.

Just as a initial list of ideas for a series of follow-up articles:

  • Manually constructing commits / manipulation of the FS

  • How to serve an OSTree remote with NGINX (file-serving configuration example / recommendations)

  • Tooling (osbuild, cosa, rose)

  • CI/CD for a Fedora IoT Remix on Gitlab CI

  • How to build flashable RAW images

  • How to build bootable Anaconda images

  • How to test commits / images with QEMU

  • Using deltas to speed up download times of updates

Sections


  1. Broad introduction

  2. Terminology

  3. Pre-requisites / Tools

  4. Setting up folders, repo(s) and sources

  5. Building a Fedora IoT based Remix commit

  6. Exploring / Playing around

  7. Summary of what we did and what we learned

An exemplatory article on my personal blog: https://openalchem.ist/essays/building-a-fedora-iot-ostree

Documentation:

Details


First I’d like to introduce everyone to the Fedora IoT eco-system from a technical perspective. Maybe a first mention of docs, community and other useful references and / or resources could be interesting. The reader should now be informed what Fedora IoT is and that we’ll be building an OS now or that at the end we’ll have an OS build on our workstation.

Next some crucial terminology should be explained. What is OSTree as a project and as a tool. What is RPM-OSTree and why do we use it additionally? Maybe also what an OSTree remote is as a concept, althought we won’t actually work with remotes in this article, only with local repositories. Maybe we should also point out the difference between a git repostiory and an OSTree one because both use similar terminology and we might later want to use a git repo to track our ostree commit sources.

We need some tools to work with which we now explain how to install and use (basic usage examples).

We’ll need some folders and files to work with. Either we use an example git repo to clone for this to make it easier or provide some basics in the article.

With folders, files and OSTree repo(s) in place we can now go through the creation of a commit, basically a custom OS filesystem, based on the latest Fedora IoT branches.

After we build a commit we can explore the filesystem for a bit, explaining and showing some of the details that happend while building etc.

Last but not least we sum up what we did and what we learned.

We might also want to explain the build process in detail before actually building, don’t know when to do that at best. Are there other infos missing, that make it more targeted / suited for the Fedora (IoT) community?

1 Like

I’m working on Fedora IoT on a professional and private basis. At my company we use Fedora IoT as a Remix with our own custom packages, tools, containers and configurations in our own OSTree repository with a simple, straight forward open source toolchain.

I’d like to write about Fedora IoT, RPM-OSTree and the tools around it more as I already do on my private blog. In contrast to my blog I’d like to propose, write and consult on articles specifically targeted at Fedora and Fedora IoT users. I’m a huge fan of Fedora IoT if that’s not obvious.

I’m developing a simple, straight forward open-source toolchain RPM-OSTree-Engine (ROSE) which is a collection of shell-scripts, gitlab-CI templates and docs to make maintaining Fedora IoT Remixes easier.

Apart from work I’m also using ROSE at git.shivering-isles.com to maintain several project-targeted Fedora IoT Remixes like a HomeAssistant and/or PiHole version with public OSTree remotes.

Disclaimer: so to make that transparent, I might be tempted to promote my toolchain and work as part of the articles or in separate articles related to this - if that would also be interesting or helpful to anyone

This sounds awesome to me. A big +1 from me!

As long as it is all FOSS, I think that is OK. :slightly_smiling_face:

+1 from me @w4tsn
I’ve created Taiga card #348 to track your article.

It looks like you have a FAS account and have signed the FPCA. Please log into Taiga so we can assign the card to you.
https://teams.fedoraproject.org/project/asamalik-fedora-magazine/kanban

Information on writing for the Magazine are located here.
https://docs.fedoraproject.org/en-US/fedora-magazine/writing-an-article/

Please let us know if you have questions, and thanks for volunteering to help on the Fedora Magazine.

As a follow up article I propose [Article Proposal] Host your own Fedora IoT Remix remote and use it

1 Like