📝
В самом начале уведомляю что root права НЕ требуются.

И так, у меня есть блог, как вы могли заметить. И я подумал, было бы круто что-то писать/менять с телефона, смотреть превью и пушить изменения. А не как обычно я это делал через приложения для заметок в качестве черновика и без превью.

Что понадобится:

  • Android
  • Termux
  • Markdown редактор или просто редактор текста

У меня Android 15. Termux скачан из F-Droid. Markdown редактор нужен что умеет работать с файлами, то есть не только внутреннее хранилище приложения. А так же легкий и который не будет особо мусорить своими файлами, то есть не Obsidian, а например Zettel Notes.

Termux

В Termux как и на любом linux для начала выполним:

1
pkg update && pkg upgrade -y

Чтобы все обновить. Далее:

1
termux-setup-storage

Это команда Termux, после выполнения, приложение запросит разрешение на доступ к файлам. И в ls ~/storage/shared должны будут появиться привычные вам директории, как в проводнике. А это значит что доступ к файлам есть.

📝
pkg, это команда Termux, обертка для apt которая делает дополнительные проверки. Поэтому в контексте установки пакетов лучше использовать pkg для лучшей совместимости.

Дальше все завист от вашего “хочу”. В случае моего “хочу” мне нужен go и hugo для генерации сайта (превью, live server) и git для клонирования/обновления репозитория сайта, поэтому именно этот сценарий я и опишу далее.

Установка git:

1
pkg install git -y

Установка ssh:

1
pkg install openssh -y
📝
SSH нужен для работы с вашим сервером через git (вы <-> сервер), то есть если вы не используете ничего типа GitHub. Если вы используете такой сервис и не используете ssh ключи для авторизации, устанавливать не обязательно.

Авторизация git чтобы пушить изменения:

1
git config --global user.name "<username>"
1
git config --global user.email <[email protected]>
1
git config --global credential.helper store

store – не самый безопасный способ хранения, но в контексте Android (sandbox) и ограничений Termux (отсутствие полноценной поддержки libsecret) пойдет.

Установка go:

1
pkg install golang

Проверка: go version.

Сборка hugo:

Установка clang:

1
pkg install clang

И сборка hugo:

1
CGO_ENABLED=1 go install -tags extended github.com/gohugoio/hugo@latest

В момент установки зависимостей показалось что оно зависло, даже лог не шел, но оказалось что это не так. Когда завершится, выполнить команду:

1
ls ~/go/bin/

Там должен быть “hugo”, если так, значит оно скомпилировалось.

Теперь добавим это в переменные среды, чтобы не писать путь до бинарника каждый раз:

1
touch ~/.bashrc
1
echo 'export PATH="$HOME/go/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc

Проверка: hugo version.

А еще при запуске сервера например hugo server -D, нужно использоваться флаг noBuildLock из-за особенности файловой системы Android блокировки файлов.

То есть:

1
hugo server -D --noBuildLock

Markdown редактор

Markdown редактор на ваш вкус, цвет и настроение. Можно и вовсе не markdown редактор, а какой-нибудь обычный текстовый редактор. Я выбрал Zettel Notes из-за легкости и кастомизации.

Zettel Notes / Termux / Browser Preview

Послесловие

Я пробовал устанавливать go и hugo вручную как это делаю обычно (но arm64 версии, uname -m = “aarch” ).

Go работал, hugo просто не работал. Тогда я попытался собрать hugo по официальной документации, но go сыпался при работе с сетью (скачивание зависимостей). Устанавливать hugo через пакетный менеджер не вариант, потому что старая + не extended версия.

Я попробовал установить go через pkg, go все так же работал, но исправился краш компилятора при скачивание зависимостей, тогда я попробовал снова собрать hugo, и о чудо.