Переезд блога

Я почти пол года не писал в блог. Давно пора это исправить. После небольшого копания в коде я решил изменить свой блог и начать работу с новой платформой.

Мне нравится внешний вид блога, но крайне не устраивает его техническая часть. Первая версия была реализована в виде велосипеда на .net framework. Затем, чуть больше года назад была обновлена до .net core. И все бы хорошо, если бы. В последнее время мне не нравится направление, куда двигается microsoft и платформа .net core в частности. К тому же накопилась боль в виде поддержки и обновлений кода. Больше всего мне не нравится процесс обновления сайтов на .net. Это компиляция (что не всегда плохо), но это сотни а то и тысячи файлов для двухстраничного блога. От этого становится грустно, хочется, чтобы было минимум лишних файлов. Я давно хотел попробовать и вот, остановил свой выбор на генераторе статичных сайтов.

Пришлось пожертвовать нативным блоком комментариев. В целом комментариев на сайте было не очень много, всегда есть способ связаться с автором посредством других способов. На замену пришел известный Disqus. Не могу сказать, что я сильно в восторге от этой системы комментариев, но, бесплатно и работает.

Платформа

Свой выбор я остановил на платформе Hugo. Это приложение на Go. Я давно мечтаю познакомиться поглубже с Go, возможно это поможет ближе подойти к цели. Он реально быстрый. Генерация и обновление сайта занимают пару секунд. Он генерирует статичный сайт, который может быть развернут на самом дешевом хостинге. Ну и бонусом идет куча тем, можно выбрать готовую либо собрать под себя.

Установка и настройка

Устанавливается Hugo командой

brew install hugo

Далее нужно создать сайт, выбрать шаблон, скачать и настроить сайт 💥.

Новый пост создается командой hugo new posts/post-name.md. Огромный плюс, что все тексты записей хранятся в репозитории. Можно сделать его открытым. Можно видеть весь changelog, без каких-либо трудностей.

Для того, чтобы запустить сервер на локальной машине выполняем команду hugo server -D, получаем примерно следующий результат.

                   | RU
+------------------+-----+
  Pages            | 133
  Paginator pages  |  12
  Non-page files   |   0
  Static files     | 573
  Processed images |   0
  Aliases          |   2
  Sitemaps         |   1
  Cleaned          |   0

Total in 680 ms
Watching for changes in /.../blog/{content,data,layouts,static,themes}
Watching for config changes in /.../blog/config.json
Serving pages from memory
Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender
Web Server is available at http://localhost:1313/ (bind address 127.0.0.1)
Press Ctrl+C to stop

Build & Deploy

Я сделал простой shell скрипт, который компилирует сайт и заливает его в продакшен:

#!/usr/bin/env bash
hugo

#!/bin/bash
cd ./public
rsync \
	--verbose \
	--compress \
	--progress \
	--recursive \
	--times \
	--omit-dir-times \
	--chown=www-data \
    --rsync-path="sudo -u www-data rsync" \
    ./ username@oxozle.com:/var/www/oxozle.com/

Комментарии

comments powered by Disqus