Submind YouTube summaries
Thumbnail for Flock 2025 Introducing SyncStar: Create Bootable Media At Conference Kiosks

Flock 2025 Introducing SyncStar: Create Bootable Media At Conference Kiosks

Watch on YouTube

Video summary

Akashdeep Thar, a senior software engineer within the Red Hat Community Linux Engineering team and an active Fedora Council representative, introduces SyncStar, a project designed to modernize the creation of bootable media at conference kiosks. The concept builds upon "Fedorator," a device from 2017 that utilized a Raspberry Pi and a 3D-printed case to flash distributions like Fedora, CentOS Stream, and Ubuntu. However, Fedorator faced significant hurdles over the years, including skyrocketing prices for semiconductors post-pandemic which made Raspberry Pis unaffordable, a decline in the availability of 3D printers, and a drop in interest as in-person events resumed. SyncStar was developed to address these challenges by removing the dependency on specific hardware like Raspberry Pis or touchscreens, allowing organizers to repurpose aging laptops, Chromebooks, or even mini PCs running headless services to perform the same task. The technical architecture of SyncStar is built for robustness and accessibility, utilizing a web interface that can be controlled via any device with a browser, such as an old smartphone, rather than requiring a dedicated monitor or joystick. At its core, the system wraps the `dd` command-line tool to write images to USB drives but enhances it with critical safety features to prevent data corruption. The developer implemented four basic checks, including verifying sufficient storage capacity before starting the process, authenticating endpoints to ensure only authorized users can initiate writes, validating HTTP methods, and confirming that specific image targets are specified. Furthermore, the system includes signature verification for ISO files to ensure they have not been tampered with, addressing security concerns about malicious actors injecting bad images into the queue. Beyond its technical capabilities, SyncStar emphasizes community engagement and sustainability by supporting a "bring your own device" model where attendees can use their own flash drives. The project is designed to be distribution-agnostic, allowing organizers to curate which operating systems are available through a simple YAML configuration file that points to local assets without needing an internet connection. This flexibility means the tool works not just for Fedora but also for Ubuntu, Debian, and others, fostering conversations between attendees and volunteers about contributing to open source projects. By facilitating face-to-face interactions where users can physically take home freshly flashed media after a discussion, SyncStar aims to transform passive booth visitors into active community contributors while ensuring that the "gift of Linux" is delivered securely and efficiently at any FOSS event.
Read the full video transcript
Um, can you folks hear me? Loud and clear. Thank you so much. Um Good morning and welcome to my talk about Oh, where's Where's the slide switch out? Can I have the remote, please? Thank you. Yeah, I had this microphone controller in front of me and it would be a bit weird if I were to turn off the microphone just because I wanted to switch slides. Anyway, I'm Akashdeep Thar and I'll be talking about Singularity, a project that you can make use of to create bootable media at conference kiosks. If that reminds you of something, if that gives you a feeling of deja vu, we will talk about what that project is. Before we go there, I'm going to go to the backgrounds, especially about the person who made it. So, a little bit about myself. I know a bunch of you folks know me already, but for those who don't and for those of us who could not make it to Flock in person, I'm Akashdeep Thar. I work as a senior software engineer in the Red Hat Community Linux Engineering team. My day job entails of doing stuff in Fedora infrastructure and the release engineering team. I have served in the Fedora Council a couple of times, once as Community Objective Lead. It was called Initiatives. It's called Initiatives right now. It was called Objective back in the day and recently as an elected representative where I did a bunch of stuff, but um I think you'll remember me for the Forgejo versus GitLab thingy. Um, I have mentored in Outreachy internships a bunch of times, the most recent times being for the Fedora Websites and Apps team, as well as for the Fedora infrastructure. And just like right now, I keep speaking in FOSS events. I think I'm a bit talkative. Um, whenever it's FOSS time or CentOS Connect or Flock, like it is right now or a release party. It doesn't have to be in person. I'll take any opportunity I get. I do a lot of speaking in FOSS events. All right. So, that's enough about me. Let's talk about the thing that was giving you deja vu, Fedorator. This This little thing looks fancy, isn't it? Like it's this 3D printed case with tasteful blue color. Um and it has this fancy touch screen from where you can select which distribution it is that you want to install and a couple of USB 3 ports. Mhm, those are blue in color uh that you have in front to flash your image on the top of it. So, uh it was made by David Labskey. Um I'm sorry if I messed up that name. Uh in Flock 2017 and we have a bunch of these devices around the place uh by Fedora ambassadors who um make use of these in a bunch of Fedora project events that happen in person. Even if it's not a Fedora project event, that's fine. If it's a FOSS event, just go there, set up a Fedora booth, and set this thing up, and that should be good. Um this thing makes use of a Raspberry Pi. It has a 3D printed case. It has a touch screen. Super amazing stuff. But, we also had challenges with that. Raspberry Pi was advertised as at some point in time uh a cheap device, an inexpensive computer to get your hands on, but uh COVID-19 happened and with that, increased the prices of semiconductors. And I could not get myself a GPU. >> [clears throat] >> Sorry, I won't go off the rails. I could not get myself a Raspberry Pi at least in the price that actually I would be okay with. I was getting it for twice or thrice the price. And um mhm, that's that's the that was uh you know, it was elevating the barrier of entry for me. I That could be a no-brainer. It There was the in-person conferences as well. People were restricted to their homes. They were not happening anymore. And of course, the availability of 3D printers. It's of course better right now, but uh, you got to keep in mind that there's a bunch of places where 3D printers are hard to find. And then finally, the poor presence of resuming. Now that uh, we don't have COVID-19 as bad as it was anymore. Now that the conferences started happening again, we didn't have the interest and um, well, that that sucks to be honest because this was an amazing project. You could give people the gift of Fedora, but you couldn't. So, well, I mean, the TLDR of this project is to fix those challenges and to do some more on the top of that. But of course, the first is to reduce the hardware dependency. You shouldn't need a Raspberry Pi. If you have an aging laptop or a Chromebook that no one cared about, you should be able to make use of it as long as it has USB ports in it. And well, of course, if it has to run Linux because it makes use of DD at its core. But uh, yeah. If you don't have a touchscreen, if you have a device that's old, it's fine. You should be able to use it. Then the improved self-interaction like uh, you don't need a monitor or joystick to be able to control that. It's not that bad. If you have an old phone, that should work as well. So, I made use of a web interface and a headless service can run on a mini PC for anything. And then finally, I tried to make sure that it's robust because uh, it's USB drives that we're talking about. We would be installing Fedora on PC, so we want to be very, very, very sure that it actually does things the right way. And then finally Fedora had support for Fedora. While you could make use of it, but it wasn't documented for other distributions. I wanted to open us up. One of the core foundations of Fedora project is friends. So I wanted to make sure that this is something that could be used by our friends at CentOS Stream or L or our downstream folks like the ones at Rocky Linux and AlmaLinux or anyone else like in the free and open source software. If you want to use it on Ubuntu or Debian knock yourself out. It should be able to work just fine. So that's the plan and this is more about how it achieves the plan. Don't be alarmed. This flowchart or well this diagram might look a bit weird, but it's it's really not. It just has four end points, a couple of which are just for signing in and signing out and the other one is for regular probing of devices. The one is for synchronizing like sending the request here's my flash drive. It has got 16 gigs of storage. Could you please set me up with Fedora workstation? At its core it makes use of flask and celery. No random no name framework that no one cares about. People could totally come right in, contribute and actually learn something out of this. And then it's a wrapper around DD. Like I said, I don't reinvent the loop over here. It just sends the job to DD and that's what ends up writing this thing. One funny fact in between I'd like to call DD disk destroyer because there have been times I have selected a wrong partition and um let's just say that it did not end as good as I thought it would. Okay, that's that's DD and then React JS based front end for you know, having foundational components and making sure that people can actually contribute to something that's 2025 and not 202006. And then finally just four basic endpoints that I started with to to do that stuff. It's It's kept simple and it's kept simple for a reason. So, when I mentioned about the test cases and just how important it is to make sure that uh they made this written correctly, it's because of the robustness. Um I get reminded of this uh situation in in 2017 Flock. Of course, I was not there. I was probably uh school student back then. I was not even around Fedora for that matter. Um Sumantro told me the story. Um there was this Fedora IoT deployment and uh they were installing flashing Fedora on the top of it. Then what happens is the person yanked that USB drive out in the middle of the writing process. And I think Fedora IoT was still, you know, it was showing this progress, but it was still continuing. I was like, "Okay, wow. Are you using telepathy, sir? Does your flash drive support Wi-Fi? How is that still working?" And one of the key factors that led me to do uh like 100% test coverage was A, if someone does something like that, it would be embarrassing to actually have a situation where it actually continues progressing. So, it it should error out. You know, that's how it should be. But ideally, no one should pull out a flash drive when it's in the writing process. Don't do that. It's It's a stupid thing to do. Um but I have four checks, four very basic checks. Um A is of course checking for insufficient capacity. If If you're putting in a 2 gigs big flash drive and you want to have CentOS Streams DVD 1, which is like what, 9 gigs big, um it won't work. But it won't even get let you get to that. It would literally not start the flashing process. It would error out. Um then, of course, the next one is authenticated endpoints. This is not a desktop application. It's going to be in this uh devices that would be in the same network as that of the Syncthing node. So, it's important that you make sure that the person who are sending orders to flash [clears throat] something on a USB device, they have the accesses to do it. Then, uh improper methods. You can't just do get request on uh the sync and just expect things to work. It won't. And then, finally, the specificities like uh you can totally send a request of writing something without specifying what that something is to a flash drive. It won't work. Right. So, um that's pretty much about how it is behind the scenes or the things that I had to take care of when I was writing it. Pretty boring. Um or at least I was getting definitely bored when I could not attend Flock 2024, which happened in Rochester. So, I thought I'm going to use this time to cook this one up. So, Fedorator was created in Flock 2017. Syncthing star was created in Flock 2024. And hm 7 years. Okay. That's that's quite all right. Um yeah, that's that that was when I made it. Uh I didn't have the visa, I suppose, but uh let's talk about how you can set this up if you are in a Fedora event or if you're just setting up a booth in a free and open source software event. Um it starts with initializing the kiosk service. Set your desktop. If you have stickers and swags, lay them out, but also have a device on which Fedorator, well, Syncthing star runs on. Um then, you welcome them. If you have flash drives to give out, that's fine. Do it. Um but if you don't, allow visitors to just visit you. They might have their own flash drives, bring your own device for sustainability. Let them. Let them come around. Have a discussion. The most important part is you could totally do this by yourself the night before. And they could literally take a flash drive and leave. The conversation is the important point. You want to make sure that you actually have a conversation with them. What's new in Fedora Linux 42? What's How can I start with contributing to Fedora project? What's going on inside of a community? These conversations would funnel in what could be users to what could be contributors going forward. And that's the value that this thing has to the contributing community members. And then finally continuing with careful discretion because um Well, you can't really trust random USB devices no matter how unsuspicious they look like. Um there would be times where people would Well, they might not have the bad intentions, but there would be bad responses. So, um be careful for those scenarios. All right. So, that's how you do it. And this is how we did it the last time we were in uh GNOME Asia in Bengaluru. So, I'm going to quickly head back one slide. Perfect. This is a picture from the 2024 FOSDEM, not this year, previous year's FOSDEM. I didn't have the deployment there, but it's It's just us having a booth, the Fedora Project booth, in FOSDEM. So, it doesn't have to be a dedicated Fedora event. It could be us participating in another event. It's It's just as fine. And this one was um Yeah, like I said, GNOME Asia in Bengaluru. We um helped the GNOME Asia folks um organize this event in the Red Hat Bengaluru office, where we had this engaging presentation. A bunch of folks joined. I think part of the reason why folks joined was there was going to be a raffle, but most of the reason was because I kept it open for any distribution. I was like, "This is not for Fedora just you could install it on Fedora. There's an official RPM for it, but if you want you could totally get this from Python Package Index install it like you would on anything that supports Python and it would work just fine. Um like I said, we had a randomized raffle. We had folks from uh Technomecha team like Aditya Singh and Siddharth Sitoula who helped us with the raffle and deciding who would be the winners. And then finally role-playing events because we wanted to enact how it would look like for an attendee and an attendant to uh connect in a free and open source software event and uh have a conversation about how it is going on in our community. And then of course the flashing procedure which I wish I could have shown you because well, I don't have a laptop here. So, I guess I'm going to have to make do with the screenshots. Right. Yeah, workshop. Sorry, not going to happen. So, uh I'm going to have to move over to the screenshots. Over here, um yeah. Things are supposed to have mode. You're welcome. Um this is screenshots from the 0.1.0 and it has this um model where it shows the flash drive that you have selected as well as the images that you can flash on that drive. You do see that there are some entries in yellow because the flash drive has a capacity of 3.61 gigs while there are some entries that are clearly a lot bigger than that. So, of course it won't let you do that. It won't work. And then on the bottom right side you see that there's a login window because yeah, it's it's it's a web interface, right? Run it in a laptop, but use your old phone or a new phone for that matter to do the controlling. It's going to work just fine. And these are some more pictures from the Red Hat Bengaluru office where we did GNOME Asia. We have folks from Debian, we have folks from Red Hat, we also have folks that contribute to GNOME. Um I gave away like around five flash drives. Thank you, Justin, for bringing them from Micro Center. But they they had a bunch of things. So I was giving away like um distributions that have GNOME in them, which included Ubuntu, CentOS Stream, RHEL, Fedora at that point in them. I think the most recent release was a 40, but I could be mistaken. Um and yeah, that's on the bottom right corner, that's me um repurposing the same slide deck, just it's green there, it's blue over here. Right. Um we're down to our last couple of slides, so um volunteers, uh the attendant and attendee part is pretty much mirror of each other. One asks question, other answers it. One asks if they can take the flash drive, the other one says, "Hey, if you have if you flash Fedora Linux on it, then only." And the other one asks if I can contribute to Fedora and how can I. The other one tells, "Well, here's how." Stuff like that. And then this is how you uh take some time to engage with the community in person. What's the rationale behind that? Engagement and compatibility, sure, but for the most parts it is important for people to realize that what you're providing them with, the gift of Fedora, it's getting flashed in front of them. It's not some uh well, they can download it from online, That's fine, but if they are here in person, get it from us. Have some conversations, understand just what went into making something that you know and you love and you run in your laptop. And well, visitors can take it for a spin as well. If you have a device that has Fedora live running on it, they can take it for a spin over there, too. That brings us to the last slide and well, I would love to answer your questions. Go ahead. >> Uh device is quite enough. >> Is it? Oh, yeah. I'm a loud guy, don't worry. Um, can you control what packages or sorry, not distributions can be synced to it cuz I noticed you were just listing out a lot of references, but like can you control which ones the user gets to see? >> Yeah, for sure. So, um, there's a YAML file that uh, points towards where the distributions ISO file is located, image, basically, and some kind of an identifier, right? And I have this um, identifier that is like Fedora or CentOS or Arch Linux, do you see that? And depending on that, it actually finds the assets that's stored locally, right? Um, that's that's how it controls. It's it's not going to connect to the internet, don't worry about it. Yeah. >> Um, and just one follow-up. >> Sure. >> Can you control the version number of what you're showing? So, like if I want to Or does it on boot? Like so, if I think about like a a conference like like at the FOSDEM event, right? Like I'm lazy. Can I just boot up a laptop and does it know, "Hey, I'm you know, Fedora 42's out. I need to get Fedora 42." Or do I have to tell it I need Fedora 42 for that? I I don't know. It just I like do I need to prepare that in advance if I >> Oh, you do. You do. It's it's kept simple in uh, for a reason. So, you kind of have to download it, point to the place where it's downloaded, and then it's read from there because uh, we could download it but then I would have to do it for every single distribution and yeah that would have been a bit pain so I didn't implement it. >> How do I set this up? Can I just go DNF install Singularity? >> Yes, you can. >> I'm going to do it now. Excellent. So I assume you do that but then you set up a configuration file and then it looks at the configuration file. >> Right. Yeah, so if you go to a Singularity documentation there's going to be a bunch of links. Oh, I I did share a bunch of QR codes but I'm going to share the slide deck with you folks later. Um Yeah, over at the project's home page that is GitHub you would be able to find a wiki which tells you just how you would set it up. It's it's really easy. It's the our YAML based configuration that you can make use of and yeah. That's that's about it. >> Yeah, so do you have any kind of share checks or ISO signature to make sure that nobody's putting anything dodgy in your YAML file and all the weird ISO and then burn it to people. >> Um it does check for the shot that you provided with. Right? It's not going to go to let's say to Fedora Linux server or Rocky Linux server and be like okay is this really the image that it claims itself to be. So I do understand your concern there might be situations where someone would be providing them with say Rocky Linux but it might not be the Rocky Linux or Fedora Linux but it might not be Fedora Linux but it does verify it on right that okay is it indeed written properly right or did it have some breakages in the between because yeah stuff happens but not from the servers if that's what you're asking. Cool. All right. If we don't have any more questions then I would then I would say that we were able to properly manage time for this one. And thank you so much for listening to me.