Цель: Дать методику написания рецепта для VMManager, с самим рецептом в конце. В итоге упростить установку блога GHost для не подготовленных пользователей.
Целевая аудитория: Блогеры и те кто хотят ими стать, а так же хостеры желающие использовать подобный рецепт и просто администраторы.
Причина написания статьи кроется в том, что только за последний месяц ко мне уже второй раз обращаются за помощью в установке GHost, причём заваливаются на банальном. Поискал инструкции по установке и понял что рядовой пользователь, который не общается с консолью, вероятно не быстро их распробует.
Поехали…
Для начала нужно понять как же вообще пишется рецепт, кому интересно эти знания я подцепил тут
У меня после прочтения принципа создания рецепта получилось вот это:
Всё остальное чистый bash, то есть надо написать скрипт, который ставит все необходимые программы для работы ghost. Перечислим эти программы:
NodeJS нужной версии можно взять из официальных репозиториев Debian, на момент написания статьи там 6.11.4~dfsg-1 версия.
Те, кому эта идея может показаться рискованной могут использовать репозитории NodeJS с официального сайта.
Nginx и yarn будем ставить из предустановленных репозиториев. Чтобы добавить репозиторий unstable понадобится такая строчка.
Если Вам не нужен рецепт для панели, а просто нужно поставить GHost через консоль на Debian 9, то можете выполнять все команды в консоли от root-пользователя. Данный рецепт тестировался только на Debian 9, хотя и на других версиях Debian он тоже должен сработать.
Но если оставить эту строчку без правки её приоритета в системе сервер в процессе обновлений перетечёт из стабильной в не стабильную ветку, а так как этого нам не надо установим приоритеты.
Теперь пакеты с нестабильного репозитория будут ставиться только если мы непосредственно в команде установке укажем нестабильный репозиторий как желаемый.
Теперь необходимо обновить список пакетов.
Установим NodeJS
Теперь установим Nginx и yarn
Теперь будем придерживаться официальной инструкции по установке.
Добавим пользователя
Установим ghost-cli
Пояснения к параметрам запуска можно посмотреть выполнив в консоли
или посмотреть тут и тут
Запускаем установку GHost
Если Вы тот, кто пользуется мануалом для установки GHost, перед выполнением этой команды убедитесь что команда
выводит в консоль Ваше доменное имя, в противном случае замените в данной строчке и далее в следующих командах $(hostname -f) на Ваше доменное имя
Подправим права после установки
Переходим в папку с сайтом для завершения установки
Удаляем конфигурационный файл по умолчанию в Nginx
Настраиваем Nginx
настраиваем демона и запускаем его
Можно использовать как скрипт для установки GHost
Целевая аудитория: Блогеры и те кто хотят ими стать, а так же хостеры желающие использовать подобный рецепт и просто администраторы.
Причина написания статьи кроется в том, что только за последний месяц ко мне уже второй раз обращаются за помощью в установке GHost, причём заваливаются на банальном. Поискал инструкции по установке и понял что рядовой пользователь, который не общается с консолью, вероятно не быстро их распробует.
Поехали…
Для начала нужно понять как же вообще пишется рецепт, кому интересно эти знания я подцепил тут
У меня после прочтения принципа создания рецепта получилось вот это:
#!/bin/bash
#
# metadata_begin
# recipe: ghost
# tags: debian9
# revision: 1
# description_ru: Тут будет описание когда рецепт будет готов напишем его.
# metadata_end
#
Всё остальное чистый bash, то есть надо написать скрипт, который ставит все необходимые программы для работы ghost. Перечислим эти программы:
- NodeJS >=4.5 <5 >=6.9 <7
- Nginx
- yarn
NodeJS нужной версии можно взять из официальных репозиториев Debian, на момент написания статьи там 6.11.4~dfsg-1 версия.
Те, кому эта идея может показаться рискованной могут использовать репозитории NodeJS с официального сайта.
Nginx и yarn будем ставить из предустановленных репозиториев. Чтобы добавить репозиторий unstable понадобится такая строчка.
Если Вам не нужен рецепт для панели, а просто нужно поставить GHost через консоль на Debian 9, то можете выполнять все команды в консоли от root-пользователя. Данный рецепт тестировался только на Debian 9, хотя и на других версиях Debian он тоже должен сработать.
echo 'deb http://ftp.ru.debian.org/debian unstable main' > /etc/apt/sources.list.d/nodejs.list
Но если оставить эту строчку без правки её приоритета в системе сервер в процессе обновлений перетечёт из стабильной в не стабильную ветку, а так как этого нам не надо установим приоритеты.
echo -e 'Package: *\nPin: release a=unstable\nPin-Priority: -9' > /etc/apt/preferences
Теперь пакеты с нестабильного репозитория будут ставиться только если мы непосредственно в команде установке укажем нестабильный репозиторий как желаемый.
Теперь необходимо обновить список пакетов.
apt update
Установим NodeJS
apt -y install --no-install-recommends -t unstable nodejs npm
Теперь установим Nginx и yarn
apt -y install --no-install-recommends nginx-light yarn
Теперь будем придерживаться официальной инструкции по установке.
Добавим пользователя
adduser --shell /bin/bash --gecos 'Ghost application' ghost --disabled-password
Установим ghost-cli
npm i -g ghost-cli
Пояснения к параметрам запуска можно посмотреть выполнив в консоли
ghost help
или посмотреть тут и тут
Запускаем установку GHost
Если Вы тот, кто пользуется мануалом для установки GHost, перед выполнением этой команды убедитесь что команда
hostname -f
выводит в консоль Ваше доменное имя, в противном случае замените в данной строчке и далее в следующих командах $(hostname -f) на Ваше доменное имя
ghost install -d /var/www/$(hostname -f) --no-stack --url http://$(hostname -f) --db sqlite3 --dbpath /home/ghost/bd --no-setup-nginx --no-setup-systemd --no-start
Подправим права после установки
chown -R ghost:ghost /var/www/$(hostname -f)
Переходим в папку с сайтом для завершения установки
cd /var/www/$(hostname -f)
Удаляем конфигурационный файл по умолчанию в Nginx
rm /etc/nginx/sites-enabled/default
Настраиваем Nginx
ghost setup nginx
настраиваем демона и запускаем его
ghost setup systemd && ghost start
Можно использовать как скрипт для установки GHost
Посмотреть что получилось
#!/bin/bash
#
# metadata_begin
# recipe: ghost
# tags: debian9
# revision: 1
# description_ru: Установка GHost
# metadata_end
#
echo 'deb http://ftp.ru.debian.org/debian unstable main' > /etc/apt/sources.list.d/nodejs.list
echo -e 'Package: *\nPin: release a=unstable\nPin-Priority: -9' > /etc/apt/preferences
apt update
apt -y install --no-install-recommends -t unstable nodejs npm
apt -y install --no-install-recommends nginx-light yarn
adduser --shell /bin/bash --gecos 'Ghost application' ghost --disabled-password
npm i -g ghost-cli
ghost install -d /var/www/$(hostname -f) --no-stack --url http://$(hostname -f) --db sqlite3 --dbpath /home/ghost/bd --no-setup-nginx --no-setup-systemd --no-start
chown -R ghost:ghost /var/www/$(hostname -f)
cd /var/www/$(hostname -f)
rm /etc/nginx/sites-enabled/default
ghost setup nginx
ghost setup systemd && ghost start
wispoz
Раз уж рецепт, то поделились бы рецептом для Ansible и прочих, ну и рассказали бы что такое Ghost.
castomi Автор
Отвечу ссылкой на википедию
https://ru.wikipedia.org/wiki/Ghost_(%D0%B1%D0%BB%D0%BE%D0%B3-%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D0%B0)