Ghost
Ghost is a free and open source blogging platform written in JavaScript and distributed under the MIT License, designed to simplify the process of online publishing for individual bloggers as well as online publications.
Contents
AUR installation
Install GhostAUR, and modify /srv/ghost/config.js
. Then start ghost.service
. If you are happy with it, enable it for automatic start when the system boots.
Visit http://127.0.0.1:2368/ghost for final configuration.
Custom installation
Prerequisites
This instruction will guide you through the installation of Ghost using nginx as web server.
Install nginx, npm, sqlite, python2, base-devel, unzip and nodejs.
Installation
Now it is time to configure the web server to act as a proxy of your blog. In the server block configuration file of nginx (etc/nginx/nginx.conf), change the location lines to the following:
location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; proxy_pass http://127.0.0.1:2368; }
Create the ghost user and directory for ghost:
$ useradd -r -s /bin/false ghost $ mkdir -p /srv/http/example.org
Now start the nginx.service
.
Install GhostAUR or grab the latest version of Ghost from Ghost.org, install it manually and change into the extraction directory::
$ curl -L https://ghost.org/zip/ghost-latest.zip -o ghost.zip $ unzip ghost.zip -d /srv/http/example.org $ cd /srv/http/example.org
Temporarily link the python path variable to python 2 instead of python 3: First create a dummy folder:
$ mkdir ~/bin
Then add a symlink python to python2 and the config scripts in it:
$ ln -s /usr/bin/python2 ~/bin/python $ ln -s /usr/bin/python2-config ~/bin/python-config
Finally put the new folder at the beginning of your PATH variable:
$ export PATH=~/bin:$PATH
Install ghost - you do not need this step when you have installed it from the Arch User Repository:
$ npm install --production
Start ghost:
$ npm start --production
Done! Open the browser and go to 127.0.0.1 or the IP of the device you installed ghost.
Creating a service
If you want to run Ghost in the background, you have to create a service. Create a new service unit for the local system:
/etc/systemd/system/ghost-example-com.service
[Unit] Description=Ghost blog example.org After=network.target [Service] Type=simple PIDFile=/run/ghost-example-org.pid WorkingDirectory=/srv/http/example.org User=ghost Group=ghost ExecStart=/usr/bin/npm start --production /srv/http/example.org ExecStop=/usr/bin/npm stop /srv/http/example.org StandardOutput=null StandardError=null [Install] WantedBy=multi-user.target
Change the owner of the blog directory and start Ghost:
$ chown -R ghost:ghost /srv/http/example.org $ systemctl start ghost-example-com
If everything is working fine, you can enable the new unit ghost-example-com
as well as the webserver nginx.service
.