Начал смотреть проекты для запуска GitHub Actions локально, например https://github.com/nektos/act.
Потом прикинул, что мне на самом деле нужно выполнять одну команду: docker build -f Dockerfile .
.
Поэтому я упростил себе задачу: перенёс эту команду на Raspberry Pi и настроил запуск каждые 4 часа.
С первого раза публикацию запустить не получилось: падала при сборке этого блога. Начал уже думать, что проблема из‑за архитектуры, но всё оказалось проще: на Raspberry Pi 4ГБ ОЗУ, а для сборки нужно около 8ГБ. 😬
Вспомнились резидентные программы на ассемблере, которые я писал в тетради, а потом раз в неделю переносил на компьютер и отлаживал — каждый регистр был на счету, как впрочем и компьютеры, доступные для программирования. Кстати, в новых Raspberry Pi уже есть 16ГБ — за 120$. Я обошёлся бесплатным решением: подключил swap.
Итак публикация базы знаний запускается на self-hosted "облаке" (до свидания GitHub Actions!) и работает около часа. Способов ускорить много, но сейчас это не так важно. Мне важнее получить первые впечатления от работы self-hosted решения.
Вот они:
поскольку log-фалы записываются в базу знаний, которая синхронизируется с моей рабочей машиной, я могу следить за ходом публикации в реальном времени с помощью
tail -F logfile
;если нужно скопировать какой-то скрипт на Raspberry Pi, я просто копирую его в базу знаний — через мгновение он уже на сервере;
ура, первое приложение на axonaCloud!
Дальше хочу спроектировать систему, которая будет конфигурироваться и запускать приложения поверх базы знаний без необходимости подключаться через SSH и ручной настройки cron.
Хочу, чтобы всё работало как сейчас с публикацией статей: нажал «Сохранить» — и дальше все само опубликовалось. То же самое с приложениями: сохранил файл в редакторе — в моём личном "облаке" автоматически запустилась команда или процесс. Или чтобы процесс остановился, если я удалил файл или перезапустился, если я его изменил. Как-то так.
Пусть там будет «докер в докере», «утка в зайце» или ещё какая магия — главное, чтобы управлять приложениями в личном "облаке" было просто.