thoughts, stories and ideas

In order to start sharing our game development knowledge with the community, we have decided to write a blog.

Although not directly related to indie game dev, this post might be helpful to anyone kickstarting their business, whether a freelancer or an agency.

Having a strong digital presence is crucial in today's world, and writing blog posts about your work and industry is the way to go.

Detailed, high-quality blog posts will boost your SEO rating, making it easier for people to find your business online.

We had a semi-functional WordPress blog that we didn't really like, and we desperately kept searching for a better blog hosting solution.

Medium is awesome, but it wasn't perfect for search engine optimization, as in that case it's hosted on different domains and servers.

This is where Ghost comes in. It's like your personal, self-hosted Medium platform, and it's completely free.

It is also the easiest and most intuitive blogging platform we have used.

I powered up my almighty terminal, SSH-ed to our server and started the integration process.

As always, make sure that you are up-to-date before installing new software.

To unpack Ghost archive you will need unzip, so proceed by running following commands:

yum update -y
yum install unzip

Install EPEL Repository

yum install epel-release -y

Install Node.js, and npm will be automatically installed

yum install nodejs npm --enablerepo=epel

Next install pm2. Process Manager 2 will keep Ghost alive forever without downtime.

npm install pm2 -g

Download latest version of Ghost from their Github repository to your /var/www/html directory and use unzip to unpack it.

cd /var/www/html
wget https://github.com/TryGhost/Ghost/releases/download/2.15.0/Ghost-2.15.0.zip
unzip Ghost-2.15.0.zip
rm Ghost-2.15.0.zip

Now it's time to install Ghost

npm install -production

Open your config.production.json

vi core/server/config/env/config.production.json

Find and replace 'url' field with your server url

url: 'http://your_domain/',

Now use process manager you have instaled earlier to run your Ghost blog forever

NODE_ENV=production pm2 start index.js --name "ghost"

To start/stop/restart your Ghost instance you can use following commands:

pm2 start ghost
pm2 stop ghost
pm2 restart ghost

Now we need to setup Apache to act as reverse proxy

Before installing our Ghost blog we already had our main studio website running at https://quasi.studio/

This is why I went with apache instead of recommended nginx

vi /etc/httpd/conf/httpd.conf

Append this at the end of the file

<IfModule mod_proxy.c>
      ProxyPreserveHost On
      ProxyPass / http://127.0.0.1:2368/
      ProxyPassReverse / http://127.0.0.1:2368/
</IfModule>

Now restart your apache and Ghost instance

systemctl restart httpd
pm2 restart ghost

Voila! Your Ghost blog should be up and running.

Now it's up to you to make it look awesome via admin panel (http://your_domain/ghost), although the default theme looks pretty great itself.

There's also a pretty wide choice of free and premium themes you can buy, or even create one yourself.

For more information and tutorials, check their official docs.