Part-1, I had listed out the steps you can take to get blogging platform up and running. In this, I will post, I will talk some of the elements you can incorporate in your blogging platform

Get yourself a custom domain

There are plenty of domain service providers. Choose the one that best suits your need. It’s lot easier to share it your friends and more importantly it would be lot easier for them if they choose to recommend your blog to their friends.

Choose a theme

Ghost comes with a default theme.The default Ghost theme is good enough to get you started. If you want something more and do not have not lot of experience with CSS, Javascript or any front-end technologies, I would suggest you choose a theme that best meets your requirements.You can find several sites that offers you ghost specific theme.It saves you a lot of time.

Set up cloudflare

I strongly recommend this step.Cloudflare provides several services including DNS, Security and Caching.Most importantly, its FREE! Well..most of the basic services are free.The set up is pretty straightforward and will be guided by cloudflare when you sign up.

Submit your site to Google search engine

Now that you have made a decision to share your stories and ideas,it would be good to let Google know that you exist. You can register yourself on Google search console.Choose any of the methods recommended by Google. The simplest is to download the file suggested by file on your home directory and click on the link shown by Google. It takes just few seconds to verify.

Mark Down - Tips & Tricks

Check out my resources page for Mark Down cheat sheet Please note Ghost editor allows to use both Mark Down and HTML tags together.So if you know some neat tricks HTML just plugin the tags and it will work.

Configuring Ghost - Warning

You can edit the config.production.json file to edit the configuration.Please remember that the docker version is not officially supported. Hence, please be careful while making any changes to the configuration.I did have issues every time I had to restart the container.Though many sites advises you to change the config, it did not work for me.Make sure you make a copy before you make any changes.
docker exec -it container-id  /bin/bash
The above command allows you to access the container.
root@c20894eabd12:/var/lib/ghost# cat config.production.json
"url": "http://localhost:2368/",
"server": {
"port": 2368,
"host": ""
"database": {
"client": "sqlite3",
"connection": {
"filename": "/var/lib/ghost/content/data/ghost.db"
"mail": {
"transport": "Direct"
"logging": {
"transports": [
"process": "systemd",
"paths": {
"contentPath": "/var/lib/ghost/content"

Backup Data

Remember Murphy's law of failure? Do remember to take regular backup of your data. You have couple of options for backup. Option-1 : Navigate to "Labs" under the Ghost admin console and choose the export option. It automatically attaches a timestamp to your file name. I messed up my container few times and this did come in real handy. Option-2 : Use docker copy the data. All Ghost data is stored in the file path /var/lib/ghost/
 docker cp container-id:filepath destination-folder
Apart from these two manual option,you can automate by running a docker cron job to backup to an external storage. I am still exploring this option. I'm trying to use Google drive as volume container. I did find some instructions on this blog post from Allskyee but haven't managed to try it out.

Add cookies consent

EU law mandates that website owners display a warning to inform the visitors that cookies will be downloaded when visiting their website.There's a super easy way to do this. Step-1 : Visit the website Cookieconsent .It's free & opensource. Step-2 : Click on "Download",follow the steps and copy the code Step-3 : Navigate to "Code Injection"page on the admin console and paste the code in the header section.You are all done. Hope you find this post useful.As always, please feel to share your comments and suggestions.
Disclaimer : This post does not represent the thoughts,intentions, plans or strategies of my employer. It is solely my opinion.Feel free to challenge me, disagree with me and share your thoughts in the comments section