This is a note rather for technical specialists (programmers/admins), so the sources are immediately: https://github.com/stepin/home-cloud

Potentially, a web application can be written (and even for a very short time), in which you can select the configuration options for a specific system, get a zip archive and unzip it to a regular (FAT32) flash drive. Then an installer (iso) or a ready-made system (raw) is inserted on one flash drive, and these settings are on the other. This way the system will be automatically configured.

In fact, auto-installation in MicroOS is the launch of a shell script, and you can do anything in it. I have broken it down into different steps so that it can be easily selected for a specific system. It is assumed that the applications themselves will be launched through podman (containers), and outside the containers, in fact, only the configuration of the operating system.

This is still at the “prototype” stage, if you think about a boxed home cloud. From my personal point of view, all 2 of my servers are already configured, and I don’t need any more. Let’s see if there will be a desire to engage in such an open source project - it is unclear whether someone needs it in the end or not.

Due to prototyping, I consciously do not give any detailed descriptions of how to put it all: if it is difficult for a person (he does not know and does not want to figure it out), then it is too early to put it at this stage.

I plan to record a video describing how it all works and what it is.

Usage example

  1. The user buys a USB flash drive on which the system will be installed. The SanDisk Ultra Fit 32Gb fits well: it is extremely small, so it will not hang out, there is enough space and good speed. It is potentially possible for 16Gb, but there is practically no difference in price, and comfort can be significant. Less than 16Gb makes no sense. More than 32GB is possible only if, again, there is practically no difference in price, in practice it is unlikely to be particularly used (if there is an SSD for data).
  2. The user visits the site, selects the main installation parameters there (this is not yet available):
    1. Server name, for example home
  3. Language 3. The keyboard 4. Time zone
  4. Username, password, ssh key 6. Network settings, if any non-standard ones are needed
  5. After selecting the parameters, the user downloads the iso image, and using a program (for example, balenaEtcher or another) writes it to a USB flash drive. Now there are 2 flash drives: the basic OS (either an installer to install on an SD card, or a pre-installed image to download from this flash drive) and auto-installation settings.
  6. The user inserts the flash drives into the future home server. In the bios, it always chooses to boot from the main flash drive.
  7. The server is loaded and the web control panel (Cockpit) is accessible via the address https://cloud.local:9090
  8. In the web panel, first of all, disks are configured for data - format, mount. The service for installing a home cloud on a data disk is being launched.
  9. (there is no such thing now) Then the load balancer settings are selected in the web panel: whether the applications will be accessible from the outside, whether LetsEncrypt https certificates need to be obtained.
  10. (there is no such thing now) Next, the web panel selects the applications to install from the app store.
  11. (there is no such thing now) A separate section in the web panel is dedicated to backup: there are options for backup to another server, to an external hard drive when connected, and to the cloud.
  12. In the web panel, you can change the settings made during installation. And not only. For example, you can also turn on wake on lan and turn off the computer according to a schedule.