SyncStar lets users create bootable USB storage devices with the operating system of their choice. This application is intended to be deployed on kiosk devices and electronic signage where conference guests and booth visitors can avail themselves of its services. Install the syncstar package from the Fedora Linux repositories or the syncstar project from the Python Package Index to get started.
$ sudo dnf install syncstar
(venv) $ pip install syncstar
Inspiration
The idea of building SyncStar came from the original concept of the Fedorator project. This was a kiosk device for writing a Live image of Fedora Linux onto USB flash drives intended to be used on Fedora Project conference booths. While the scheme was innovative as it allowed visitors at our booths to consider using Fedora Linux, the adoption could not spread widely due to the pause in in-person conferences due to the COVID-19 pandemic. The rise in prices of Raspberry Pi devices and supporting peripherals due to the global semiconductor shortage was also detrimental to the usability of the project. The foundational hardware elements of the project were now difficult to acquire and access to a 3D printer was still difficult in some parts of the world — thereby greatly heightening the entry barrier for booth organizers. Anyone wanting to run a Fedora Project booth in their neighborhood conference in the hopes of increasing the adoption of Fedora Linux could not easily do so.
Objective
The goal behind building SyncStar was to achieve what Fedorator set out to do while providing solutions to its shortcomings along the way. Questions like “How can we significantly reduce the dependency on specific kinds of external hardware while retaining similar functionality of the project?”, “How can we improve the self-service user interaction experience if we were not to include touchscreen hardware?”, “How can we ensure a lower entry barrier for someone wanting to represent Fedora Project in their local FOSS conference happening a week from now?” and many more arose. To address concerns like these, SyncStar was fabricated as a headless service by design — thus no longer necessitating the user interactions to happen on the same device on which the bootable USB devices are created. Instead, a responsive web interface was developed to be conveniently accessible on browsers across devices as long as they are connected to the same network as the device running the service.
Features
- Asynchronous multiprocessing allows for flashing multiple storage devices simultaneously
- Programming standards and engineering methodologies are maintained as much as possible
- Frontend is adaptive across various viewport types and browser-side assistive technologies
- Detailed documentation for both consumption and development purposes are readily provided
- Minimal command line interface based configuration with wide range of customizable options
- Stellar overall codebase quality is ensured with 100% coverage of functional backend code
- Over 46 checks are provided for unit based, end-to-end based integration based codebase testing
- GitHub Actions and Pre-Commit CI are enabled to automate maintenance of codebase quality
Scenarios
- Set up the SyncStar service on the Fedora Linux promoting booth laptop or Raspberry Pi
- Open up the SyncStar dashboard either on the booth laptop or on a smartphone
- Lay over the swags like Fedora Project branded USB flash drives on the booth desk
- Let a conference attendee ask if the USB flash drives on the booth table are for taking
- Tell them that they are as long as they use SyncStar to get themselves a copy of Fedora Linux
- Have them start the live bootable media creation and strike up a conversation with them
- Allow other attendees to use their own USB flash drives with discretion in parallel
- Advertise for sidestream communities by keeping their offerings in the collection
Nomenclature
You might be curious about where this fancy name comes from. Sync is a standard system call in the Unix operating system, which commits all data from the kernel filesystem buffers to non-volatile storage. This functionality is also made available in the similarly named command line utility that is used to persist a file read/write operation. While the project might not necessarily make direct use of the said system call, the functionality it tries to achieve is similar i.e. writing operating system images on the USB storage devices to make them into Live bootable media. What’s more, it has a bunch of bells and whistles like asynchronous task queues and responsive web interfaces atop the previous functionality and is that not what stars do? 😜 So that is where the fancy name “SyncStar” came from.
Appeal
If you like the efforts made here and want to support the development of the project, please consider giving a star to the project and forking it your namespace. I appreciate all kinds of contributions — ranging from small sized bug fixes to major sized feature additions as well as from trivial documentation changes to awesome codebase refactoring. Even if you do not have the capacity to take the development for a spin, you can help me out by testing out the project and getting in touch with me on the issue tracker with the things that must be fixed and the things that should be introduced. SyncStar is far from perfect right now, but with all our efforts combined, it can most definitely get closer to being great. With that mentioned, I thank you for reading through the entirety of this article 🎉.
Kostas Apostolopoulos
If I have 50 Raspberry Pi in a LAN, can I use SyncStar to flash their SD cards, all at once?
Akashdeep Dhar
SyncStar looks specifically for USB devices so I am afraid this cannot be used for flashing SD cards. But, if you are planning on flashing USB drives connected to 50 Raspberry Pis on a LAN – that is definitely possible!
Darvond
I take it this is meant to be some manner of Ventoy replacement?
Akashdeep Dhar
Ventoy is a more advanced tool suited for purposes that go beyond the scope of what SyncStar plans on achieving. The project is made to report as little information as is needed by a conference booth attendee and/or conference booth visitor when creating live bootable media.
Ender
What’s the lifecycle of these machines? When they need updates do you have to touch each one with a replacement USB drive?
Akashdeep Dhar
As SyncStar can be deployed on machines regardless of whether those are laptops, desktops or even Raspberry Pis – the deployment targets can be used for as long as possible and for different purposes beyond their scope of being conference kiosks. Regarding updates, those can be automated using the package installation from either Fedora Linux repositories or Python Package Index.
Jeffersonian
1) Please give an example of use (I could not use it, on F40)
2) Are iso’s EFI signed ?
Akashdeep Dhar
Sad to note that it did not work on F40. Could you please point me towards the error you faced so that I can get started with fixing it? Regarding the signing of EFI, SyncStar makes use of whatever ISO is provided to it so if the ISOs are signed – it should be able to write them onto the flash drive.