Ghost blog update
Решил написать про то как перешел на блоговый движок Ghost с Wordpress. Не могу сказать что это был какой-то сложный переход, но сменить движок в блоге хотелось достаточно давно.
Во первых из-за того что Wordpress был достаточно неповоротливым, и генерировал станицы достаточно долго, и это меня как то раздражало в последнее время. Так же куча процессов Apache и php в системе, а VPS у меня конечно не особо мощьный (ниже будет про это продолжение), и Wordpress себя там чувствовал не очень хорошо. Да и хотелось что то более современное, с раздельным front/back и не php.
Перепробовав множество движков, которые хотя и были легче и может быть и грузили страницы быстрее, но не обладали всеми функциями что были мне нужны а это как минимум - нормальная разметка, embedded videos, поддержка картинки на главную в пост и тэги. Это был самый минимум. Множество движков на node.js как оказалось были сделаны с поддержкой только Markdown (что особенно часто применяется на github), проблема состоит в том что невозможно вставлять embedded video нормальным способом, максимум что можно сделать это поставить картинку из видео и сделать ссылку от нее. Меня это не очень устраивало. Поэтому, спустя некоторое время нашел этот движок, поиск затруднялся тем что узнал я про него практически сразу но главная страница на которой были написаны цены на их сервис (хостинг собественно блога) меня сбили с толку, но оказалось что сам движок бесплатен и есть ссылка на гитхаб внизу страницы.
Инсталляция не вызвала никаких звтруднений, более того есть хорошая документация на сайте. Миграция данных тоже не вызвала никаких затруднений кроме двух мелких но достаточно неприятных проблем. В Wordpress есть модуль для экспорта в Ghost, но с некоторыми ограничениями - например не будут переностится картинки (ну у меня была такая ситуация что большинство картинок в старых постах сами попередохли т.к. были ссылками с хостингов картинок которых больше уже нет). Поэтому это лишний повод подправить старые посты и перенести нужные картинки к себе на сервер. Второе, потом при импорте данных в Ghost вываливается ошибка от базы данных, гуглится способ решения проблемы достаточно бытсро в файле config.production.json
"database": {
"client": "sqlite3","connection": {
"filename": "/path/to/your/database/data/ghost-local.db"
},
},
"useNullAsDefault": true
},
и все будет загружатся хорошо.
Вторая большая пробема была уже при использовании, а именно после нескольких дней вываливался процесс
[14741820.000390] Out of memory in UB 1542: OOM killed process 5523 (node) score 0 vm:1928456kB, rss:754876kB, swap:0kB
[14772203.803800] Out of memory in UB 1542: OOM killed process 10132 (node) score 0 vm:2098224kB, rss:916616kB, swap:0kB
[14898768.593336] Out of memory in UB 1542: OOM killed process 14871 (node) score 0 vm:2101440kB, rss:913672kB, swap:0kB
[15138402.255337] Out of memory in UB 1542: OOM killed process 19683 (node) score 0 vm:2086652kB, rss:897204kB, swap:0kB
[15409823.516989] Out of memory in UB 1542: OOM killed process 18070 (node) score 0 vm:2092812kB, rss:917004kB, swap:0kB
Out of memory, печально конечно, но у меня на VPS всего 1Gb памяти поэтому я думаю поможет скрипт для перезапуска процесса, заодно и при перезагрузках (watchdog.sh):
#!/bin/bash
/usr/bin/ghost status |/bin/grep running
if [ $? -eq 0 ]
then
echo "OK"
else
cd /path/to/your/ghost
/usr/bin/ghost restart
затем отредактировать crontab и сделать такой конфиг:
@reboot /path/to/your/ghost/watchdog.sh >/dev/null 2>&1
*/5 * * * * /path/to/your/ghost/watchdog.sh >/dev/null 2>&1
Пока работает нормально, посмотрю с неделю что будет дальше.
Так же порадовало что у этого движка есть свой API и документация к нему, буду делать к нему frontend на React.
Subscribe to Somewhere Nowhere
Get the latest posts delivered right to your inbox