Это заметка скорее для технических специалистов (программисты/админы), поэтому сразу исходники: https://github.com/stepin/home-cloud

Потенциально может быть написано веб-приложение (и даже совсем недолго), в котором можно выбрать опции настройки конкретной системы, получить zip-архив и распаковать его на обычную (FAT32) флешку. Затем на одной флешке вставляется инсталлятор (iso) или уже готовая система (raw), а на другой эти настройки. Так система будет автоматически настроена.

По сути автоустановка в MicroOS – это запуск shell-скрипта, а уже в нем можно делать что угодно. Я разбил его на различные шаги, чтобы можно было легко выбирать под конкретную систему. Предполагается, что сами приложения будут запускаться через podman (контейнеры), а вне контейнеров по сути только настройка операционной системы.

Это пока что на стадии “прототипа”, если думать о коробочном домашнем облаке. С точки зрения лично меня – все 2 моих сервера уже настроены, и больше мне не надо. Посмотрим будет ли желание заниматься подобным open source проектом – непонятно в итоге это кому-то нужно или нет.

В связи с прототипностью осознанно не даю каких-то детальных описаний как это все ставить: если человеку такое сложно (не знает и не хочет разбираться), то еще рано на данном этапе ставить.

Планирую записать видео с описанием как оно все работает и что есть.

Пример использования

  1. Пользователь покупает флешку на которую будет ставиться система. Неплохо подходит SanDisk Ultra Fit 32Gb: она крайне маленькая, поэтому не будет болтаться, достаточно места и хорошая скорость. Потенциально можно и на 16Gb, но разницы в цене практически нет, а в комфорте может оказаться существенной. Меньше 16Gb смысла нет. Больше 32Гб можно, только если опять же разницы в цене практически нет, на практике оно вряд ли будет особо использоваться (при наличии SSD для данных).
  2. Пользователь заходит на сайт, там выбирает основные параметры установки (этого еще нет):
    1. Имя сервера, например home
    2. Язык
    3. Клавиатура
    4. Часовой пояс
    5. Имя пользователя, пароль, ssh-ключ
    6. Настройки сети, если необходимы какие-то нестандартные
  3. После выбора параметров пользователь скачивает iso-образ, и с помощью программы (например, balenaEtcher или другой) записывает на флешку. Сейчас 2 флешки: базовая ОС (либо установщик для установки на sd-карту, либо предустановленный образ для загрузки с этой флешки) и настройка автоустановки.
  4. Пользователь вставляет флешки в будущий домашний сервер. В биосе выбирает всегда грузиться с основной флешки.
  5. Сервер загружается и веб-панель управления (Cockpit) доступна через адрес https://cloud.local:9090
  6. В веб-панеле прежде всего настраиваются диски под данные – отформатировать, примонтировать. Запускается сервис установки домашнего облака на диск данных.
  7. (нет этого сейчас) Затем в веб-панеле выбираются настройки балансировщика: будут ли приложения доступны извне, нужно ли получать LetsEncrypt https-сертификаты.
  8. (нет этого сейчас) Далее в веб-панеле выбираются приложения для установки из магазина приложений.
  9. (нет этого сейчас) Отдельная раздел в веб-панеле посвящен резервному копированию: там представлены варианты резервного копирования на другой сервер, на внешний жесткий диск при подключении и в облака.
  10. В веб-панеле можно поменять настройки, сделанные во время установки. И не только. Например, еще включить wake on lan и сделать выключение компьютера по расписанию.