Flock 2025 Introducing SyncStar: Create Bootable Media At Conference Kiosks
Watch on YouTubeVideo 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.