The "Tinker Board Deployer" is a small bare-metal provisioning tool with a tiny footprint and minimal requirements, to quickly configure Linux-based tinker boards for deployment. It can configure local, or remote machines via SSH and handle the full configuration process from flashing your SD Cards/EMMC modules and boot configuration to the entire software installation of your device.
The deployment process is managed through "Tasks" and "Recipes" via a deployment-specific configuration file. Those can be either run via an interactive shell menu or headless through CLI parameters.
The foundation of the "Tinker Board Deployer" are various recipes (currently around 150). Each recipe contains the logic to install or configure a specific piece of software, or service. While being aware of its dependencies. These recipes can be either called directly or bundled to a larger installation routine via a "Task". Those tasks are usually representing the installation routine for a specific stack, like a lamp stack for a simple web server, or the configuration of an Unifi Controller. Device-specific configuration options are supplied via a configuration file. Making it easy to quickly try out stacks on different devices, or with modified settings.
Due to its minimal requirements, it's the ideal helper for the installation of tinker boards like the "Raspberry Pi", or edge devices.
I made heavy use of all kinds of tinker boards over the last few years, for custom devices, like my "Rapitry", for cheap clusters, or to have a mobile mini server I can take with me. Tinker boards are great for all kinds of things. Because they are available within many different price ranges and form factors, you can get many of them.
However, their diversity makes their configuration a little more time-consuming as well. Each board has its quirks you have to be aware of. While their performance isn't always the greatest either. Making it advantageous to keep the provisioning software as simple as possible.
Therefore I quickly started to write down my deployment steps into simple shell scripts for each piece of software that I tried. To avoid copy-pasting those lines I tried to keep those scripts self-containing from the get-go. But with a larger collection of scripts and an increasing knowledge of shell scripting on my side. I thought it a nice learning experience to make those scripts more configurable and easier to use.
Resulting in the "Tinker Board Deployer".