Ghost on Arch Linux

Ghost is an open source blogging platform written in Node.js, Ghost offers a simple and user-friendly User Interface that lets you manage posts, pages and users It also uses Handlebars for Theme templating. Ghost is one of the most user-friendly and easy to use blogging platform and has a dead simple install instruction. Ghost let you write your blog posts and pages in markdown with a markdown preview, that parses markdown in real time. Ghost also lets you add media and other post/page assets with a simple drag and drop. Ghost also has a very responsive design that lets you use it in comfort in every form factor and size.

Ghost is available as an AUR Package that can be installed with a few simple steps.

Installing

We need to install Yaourt.

To install Yaourt you need to the following in /etc/pacman.conf

[archlinuxfr] SigLevel = Never Server = http://repo.archlinux.fr/$arch

Now we need to update our local package database and install yaourt

sudo pacman -Sy yaourt

Now we need to download and install ghost from yaourt, the Ghost AUR package will install all the required dependencies and run npm install --production too

yaourt -S ghost

Once you have Ghost installed we can start it using SystemD.

sudo systemctl start ghost.service

We can also let Ghost start as a startup service.

sudo systemctl enable ghost.service

You Ghost config file is config.js, You can make changes to it to suit your needs.

We can also install NGINX and reverse proxy Ghost at port 80

Installing NGINX

sudo pacman -S nginx

You can replace the /etc/nginx.conf to this simple reverse proxy config optimized for Ghost.

http { server { listen 80; location / { proxy_pass http://127.0.0.1:2368; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } } events { worker_connections 5000; }

Now you can start NGINX.

sudo systemctl start nginx.service

To enable NGINX at startup.

sudo systemctl enable nginx.service

We now have Ghost installed. Happy Blogging!

Leave a Reply

Your email address will not be published. Required fields are marked *

Up Next:

How to list pages with custom layouts in Jekyll

How to list pages with custom layouts in Jekyll