Set up your Arabic Ghost Blog

Here is a suggestion for setting up your Ghost Blog in Arabic. This guide will show you how to set up the backend as well as how to translate the theme.

2 Likes

Hi there, thanks for the detailed article! :)

I once had to run 2 instances, but for a different reason. The routes! I had so many routes that crashed Ghost (I reported a bug for this one). I needed both to run on the same database, and they did well in that area, but neither was able to open articles from each other (due to dependence on the routes of the other instance). I ended up simplifying the over-engineered structure to fit on 1 instance instead. I had to setup nginx myself, because Ghost does that for you only on Ubuntu (for some reason), but I’ve been a Linux SysAdmin like forever, so that wasn’t a problem. I hard-translated Casper and used it, but I’m planning to rework the front-end after I get to production.

Anyway, I find your setup quite interesting, but why 2 instances? why not one instance with different collections & channels (You could specify a template for each route, and use a bit of Javascript to detect browser language). That’s unless you need editors from each side to have no access to the other one. Even with 2 instances, I guess your setup could work with one database (as the main page for each is separate).

Also, I have some suggestions to improve your setup:

  1. You should have created a database user for ghost. Giving root access to any script is never a good idea. If any part of your script is compromized, the attacker could potentially drop all databases on the server.
  2. In nginx, no need for the regular expression for both routes. “location ^~ /ar/” could be “location /ar/”, this should be better for performance, even if by a very tiny bit.
  3. Your SSL configuration is not very secure. I suggest TLv1.2 & TLSv1.3 only, and to enforce using secure algorithms (see: https://wiki.mozilla.org/Security/Server_Side_TLS ).

BTW, great job translating that theme! :)
And thanks again for the article. :)

^ I tried to write that as a comment on your article, but Medium didn’t let me for some reason. This is the first time I try to write something there.