Ghost - это бесплатная блог-платформа с открытым исходным кодом, написанная на node.js , полностью настраиваемая и предназначенная для публикации.
Подготовьте сервер: обновите пакеты, установите Node.js и NPM
Мы продемонстрируем установку, войдя на сервер как root, так что нам не нужно будет добавлять sudoперед каждой командой. Если вы вошли как другой пользователь, помните, что вам понадобится sudo.
На вашем сервере выполните следующую команду, чтобы обновить индекс пакетов, обновить пакеты и установить nodejsи npm.
apt-get update
apt-get upgrade
apt-get install python software-properties-common gcc g++ make -y  # auto install
add-apt-repository ppa:chris-lea/node.js -y
Вывод этих команд должен быть похож на:
gpg: keyring `/tmp/tmpvpe2ugzj/secring.gpg' created
gpg: keyring `/tmp/tmpvpe2ugzj/pubring.gpg' created
gpg: requesting key C7917B12 from hkp server keyserver.ubuntu.com
gpg: /tmp/tmpvpe2ugzj/trustdb.gpg: trustdb created
gpg: key C7917B12: public key "Launchpad chrislea" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
OK
Автоматически ключ подписи пакета будет добавлен в связку ключей (чтобы можно было проверить загруженные пакеты), а PPA будет добавлен к APT sources.list.d.
Теперь давайте запустим:
apt-get update  # again 
apt-get install nodejs -y
Запустите, npmчтобы проверить установку. Вы увидите, npmкак использование выводится на экран:
Usage: npm <command>
...
...
[email protected] /usr/lib/node_modules/npm
Теперь мы можем установить Ghost.
Установка: Ghost и Nginx
Поскольку Ghost теперь считается «стабильным», его можно установить через npm. Установите с помощью следующей команды:
npm install -g ghost --production
Игнорируйте любые предупреждения на данный момент.
Далее мы запустим Ghost и проверим, работает ли он правильно.
cd /usr/lib/node_modules/ghost
npm start --production
Вывод должен выглядеть так:
> [email protected] start /usr/lib/node_modules/ghost
> node index
Migrations: Database initialisation required for version 003
...
Migrations: Complete
Ghost is running... 
Your blog is now available on http://my-ghost-blog.com 
Ctrl+C to shut down
Оно работает! Используйте Ctrl-C, чтобы выключить Ghost, и перейдите к следующему шагу: установка (и настройка) Nginx.
Nginx очень прост в установке. Запустите следующую команду:
apt-get install nginx
Nginx будет настроен так, чтобы разрешить подключение из любого места в сети к порту 80 (или 443, если используется SSL ) на вашем сервере, который затем перенаправляется (« проксируется ») на Ghost. Вот как люди подключаются к вашему блогу.
Настроить Nginx тоже не сложно. Выполните следующие шаги для настройки прокси Ghost.
Сначала удалите файл конфигурации по умолчанию:
cd /etc/nginx/
rm sites-enabled/default
Затем создайте новый файл конфигурации:
cd sites-available
touch ghost
Адаптируйте следующие строки в соответствии с вашими потребностями и вставьте что- нибудь вроде nanoили viвставьте это (вам нужно будет указать server_nameсвое доменное имя):
server {
    listen 80;
    server_name yourdomain.tld;
    access_log /var/log/nginx/yourdomain.tld.log;  # if you want logging
    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header HOST $http_host;       
        proxy_pass http://127.0.0.1:2368;
        proxy_redirect off;
    }
}
Ссылка на ваш файл конфигурации:
cd /etc/nginx
ln -s sites-available/ghost sites-enabled/ghost
Перезапустите Nginx:
service nginx restart
На этом этапе Nginx установлен, настроен и работает на вашем сервере.
И наконец: запуск Ghost автоматически
Supervisor - это система управления процессами, которая позволяет запускать Ghost при запуске без использования сценариев инициализации. Мы будем устанавливать Supervisor для управления Ghost.
Чтобы установить Supervisor, запустите:
apt-get install supervisor
service supervisor start
Затем создайте новый файл сценария в /etc/supervisor/conf.d/ghost.conf. Вставьте в это содержимое:
[program:ghost]
command = node /usr/lib/node_modules/ghost/index.js
directory = /usr/lib/node_modules/ghost
user = ghost
autostart = true
autorestart = true
stdout_logfile = /var/log/supervisor/ghost.log
stderr_logfile = /var/log/supervisor/ghost_err.log
environment = NODE_ENV="production"
Сохраните и закройте файл.
Далее нам нужно создать пользователя для Ghost и дать ему разрешения на доступ к файлам и базе данных Ghost. Запустите следующие команды:
useradd ghost
chown -R ghost /usr/lib/node_modules/ghost/
supervisorctl reread
supervisorctl update
Наша установка завершена!
Теперь вы можете контролировать Ghost, выполнив supervisorctl start ghostи supervisorctl stop ghost.