[Article Proposal] Migrate containers from Raspbian to Fedora IoT using [...]

So this might be a series or a single article, not quite sure. This one is about the question “If I’m running my home server on a Raspberry Pi with raspbian right now, how do I migrate all that to Fedora IoT”. While of course there is no one-size-fits-all answer to this question I figured there might be some need for an article (series) going over some common use-cases and technology.

The general outline:

  1. Introduction - Light comparison between Raspbian and what sets FIoT apart
  2. Assessment - Going through typical configuration one might have, compose-files, firewall rules, dhcpcd, ssh, etc.
  3. Migration - Depending on the target tech, migrating to firewalld, NM, etc.

Variations:

There are quite some variations on the tech used and how to migrate. I want to tackle the following, happy for more input on alternatives.

  • from docker-compose to docker/podman-compose + podman v3 and podman.service
  • from docker(-compose) to podman + systemd
  • from rootful to rootless podman + (not sure yet)

I think the docker-compose + rootful podman v3 and podman.service is the least disrupting and least effort approach. I assume docker-compose to be a quite common approach and transitioning with fewest technology changes is a good start

More ways to use Fedora Linux sounds great to me. +1. :slight_smile:

2 Likes

Update:

Outline:

  1. Introduction
  2. Notable differences (between Raspberry Pi OS and Fedora IoT)
  3. Technology choices
  4. Example migration

In this article I also want to highlight the differences between Raspberry Pi OS and Fedora IoT. Besides differing technology choices like firewalld over ufw and NetworkManager over dhcpcd, or just the existence of SELinux an ostree based system differs in much more ways that even to a Fedora Server or Workstation user might be confusing at first. (I’ll also use that article research on that part to compose an update for the Fedora IoT documentation)

Next after the readers are introduced and catched up to the technology base I want to go over different, typical* technology choices. As typical container technology I see docker, docker-compose, traefik, podman, systemd.

For the fourth section I want to use one of those technology compositions to illustrate an example migration.

This update is motivated mainly by a conversation with someone currently using Raspberry Pi OS and Fedora Server who is so confused about the Fedora IoT inner mechanics that he is tempted to go for Fedora ARM Server. I figured that many concepts in libostree based systems can seem alien at first which I’d like to tackle in this article.

+1 from me! Choosing a migration from traditional OS of the Pi to Fedora IoT is and excellent use case. Created card #377 for it on our Kanban. Happy writing! I assigned you to the card as author.

1 Like

Transitioning from rootfull to rootless containers is also a great topic to cover! One thing I didn’t realize when moving my rootfull Jellyfin server to rootless on Fedora IoT was the fact that I had to manually open the ports in the firewall. That’s obvious in hindsight, but Podman does this automatically for you when running as root.

The other problem I had was making sure to add the network as a dependency for my Systemd-unit, though that sounds like it will be done automatically with Podman version 3.3.0.

1 Like

Thanks @jwillikers for the insight! The many things tools automatically do for your convenience can be quite surprising when switching tech, so it’s great to get that information into a possible article that deals with these struggles :+1:

Update:

My goal here is to give some guidance to shifting a home container setup from Raspberry Pi OS to Fedora IoT / ARM. The motivation comes from a friend who did the switch and asked me for advice. Naturally there are quite some differences in technology which can be overwhelming for someone just trying to operate a small home server on their Raspberry Pi. Since I like to see more people using Fedora on Raspberry Pi I figured some articles breaking down the topic and offering first guidance will be helpful.

So as per initial proposal the target was to take a broad shot at it from multiple angles. Right now I’ve reduced that to basically migrating a Traefik + utility container docker-compose file to Fedora IoT + a section on how to then migrate to systemd + a section on note-worthy changes (like switching from dhcpcd to NM, ufw to firewalld).

I think that maybe these should be three articles: Migrating one docker-compose file / setup to Fedora IoT (Traefik is nice for this because of many changing mechanics, e.g. podman.socket, SELinux), one on how to switch from podman-docker + docker-compose to podman+systemd and one of a broad view on switching from Raspberry Pi OS to Fedora with all it’s technology changes (SELinux, NM, firewalld)

I’m currently writing it all as one article but I feel that there is a lot to cover and the article might become to large

Breaking it up into smaller articles sounds good to me. Just make sure that cards get created to track the additional articles. We go by the cards to figure out what to publish and when. Extra articles in WordPress without corresponding Kanban cards (or maybe tasks in the case of a series) have been known to get overlooked.

Thanks.