Pull to refresh

Рецепт установки блога GHost в VMManager для Debian 9

Reading time 3 min
Views 2.6K
Цель: Дать методику написания рецепта для VMManager, с самим рецептом в конце. В итоге упростить установку блога GHost для не подготовленных пользователей.

Целевая аудитория: Блогеры и те кто хотят ими стать, а так же хостеры желающие использовать подобный рецепт и просто администраторы.

Причина написания статьи кроется в том, что только за последний месяц ко мне уже второй раз обращаются за помощью в установке GHost, причём заваливаются на банальном. Поискал инструкции по установке и понял что рядовой пользователь, который не общается с консолью, вероятно не быстро их распробует.

Поехали…

Для начала нужно понять как же вообще пишется рецепт, кому интересно эти знания я подцепил тут

У меня после прочтения принципа создания рецепта получилось вот это:

#!/bin/bash
#
# metadata_begin
# recipe: ghost
# tags: debian9
# revision: 1
# description_ru: Тут будет описание когда рецепт будет готов напишем его.
# metadata_end
#

Всё остальное чистый bash, то есть надо написать скрипт, который ставит все необходимые программы для работы ghost. Перечислим эти программы:

  1. NodeJS >=4.5 <5 >=6.9 <7
  2. Nginx
  3. 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

Only registered users can participate in poll. Log in, please.
Помогла ли Вам данная инструкция
22.22% Да, помогла 2
33.33% Нет, не помогла 3
33.33% Взял(а) скрипт 3
0% Я представитель хостинговой компании, тоже добавили к себе такой рецепт 0
0% Я представитель хостинговой компании, тоже добавили к себе такой рецепт с некоторыми правками 0
11.11% Я представитель хостинговой компании рецепт бесполезен 1
9 users voted. 11 users abstained.
Tags:
Hubs:
+2
Comments 2
Comments Comments 2

Articles