Hosting Ghost on CentOS 7
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
Find and replace 'url' field with your server url
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
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.