Introducing SyncStar

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.

Introducing SyncStar
Photo of kiosk by Bryan Dijkhuizen modified and overlaid on photo by GENERAL BYTES on Unsplash

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

Install from Fedora Linux repositories

(venv) $ pip install syncstar

Install from Python Package Index

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 neighbourhood 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.

SyncStar not only supports Fedora Linux but also other operating system images from our friends

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

  1. Set up the SyncStar service on the Fedora Linux promoting booth laptop or Raspberry Pi
  2. Open up the SyncStar dashboard either on the booth laptop or on a smartphone
  3. Lay over the swags like Fedora Project branded USB flash drives on the booth desk
  4. Let a conference attendee ask if the USB flash drives on the booth table are for taking
  5. Tell them that they are as long as they use SyncStar to get themselves a copy of Fedora Linux
  6. Have them start the live bootable media creation and strike up a conversation with them
  7. Allow other attendees to use their own USB flash drives with discretion in parallel
  8. Advertise for sidestream communities by keeping their offerings in the collection
Select a USB flash drive, select an operating system and strike a conversation

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 🎉.

This article was originally posted on Fedora Magazine on 04 Sep 2024.