# Ghost CMS

## Preface

Ghost requires Node.js which is only available on the Tommy server currently.

## About Ghost

Ghost is a free and open source blogging platform written in JavaScript and distributed under the MIT License, designed to simplify the process of online publishing for individual bloggers as well as online publications. Independent tests have found Ghost to be up to 1,900% faster than WordPress. What does that mean? In the amount of time it takes WordPress to respond to 1 request, Ghost will have already responded to 19 of them. The speed of your blog impacts everything, from search engine rankings to mobile user engagement.

## How to setup Ghost

Ghost doesn't like being in a subdirectory so `domain.com/ghost/` won't work right. We will create a subdomain for it. Log in to cPanel and click the `Subdomains`button.

![](https://3611017393-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYfIB8nfIibCXf1xNeE%2Fsync%2F146ce6300ea94cee44a860a9ac5b80a14c6bf240.png?generation=1618855584468897\&alt=media)

Let's create a subdomain called `ghost`.

![](https://3611017393-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYfIB8nfIibCXf1xNeE%2Fsync%2F797006aae5d0b38f5b5894b2e47fde8dcbe807f8.png?generation=1618855584420444\&alt=media)

Next, open the File Manager.

![](https://3611017393-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYfIB8nfIibCXf1xNeE%2Fsync%2Ff013d2c01b57db7abbbc7c03c8c95bb1ef31fb86.png?generation=1618855583390959\&alt=media)

Create a new directory in your home folder named `ghost`. Make sure this ghost directory is **NOT** in your `public_html` folder.

```
/home/username/ghost
```

Download the ghost files from <https://krydos.heliohost.org/ghost/ghost_2.31.0.tar.gz>

Upload the ghost archive to the ghost directory you just created.

```
/home/username/ghost/ghost_2.31.0.tar.gz
```

Use file manager to extract the archive by right clicking on the file and selecting `Extract`.

![](https://3611017393-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYfIB8nfIibCXf1xNeE%2Fsync%2Fa5b6352b8c22c6a717ed4288671f34c2a7c4754d.png?generation=1618855584291666\&alt=media)

Now we need to configure ghost. In the file manager navigate to:

```
/home/username/ghost/core/server/config/
```

and edit the `defaults.json` file.

![](https://3611017393-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYfIB8nfIibCXf1xNeE%2Fsync%2F7ab9060af8c68219d5c1a011c517e0335a879328.png?generation=1618855584366908\&alt=media)

On the URL line where it says `localhost:2368` change that to your subdomain that you created on the first step `ghost.domain.heliohost.org`. Make sure you leave off the port. Then on the host line where it says `127.0.0.1` change that to your subdomain too, but without the http this time so `ghost.domain.heliohost.org`. It looks more like:

![](https://3611017393-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYfIB8nfIibCXf1xNeE%2Fsync%2F21b29941e1dbc83c8741372885e26687a037a27e.png?generation=1618855584380564\&alt=media)

Next, navigate to:

```
/home/username/ghost/core/server/config/env/
```

and edit the `config.development.json` file.

![](https://3611017393-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYfIB8nfIibCXf1xNeE%2Fsync%2F00f7a00fff4a0f26a4dd187e22f87d1a80c8a6ea.png?generation=1618855584558068\&alt=media)

Once again we're going to change the URL from `localhost:2368` to `ghost.domain.heliohost.org` like so.

![](https://3611017393-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYfIB8nfIibCXf1xNeE%2Fsync%2Fdf93363d6bbebdf6b439a0bfe03dc6d280200d90.png?generation=1618855584400118\&alt=media)

Now we need to register the node application in cPanel so open the [Application Manager](https://tommy.heliohost.org:2083/frontend/paper_lantern/passenger/index.html).

![](https://3611017393-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYfIB8nfIibCXf1xNeE%2Fsync%2F28b51fbc2d57b02042f0879cd0225069df54fb0d.png?generation=1618855583049358\&alt=media)

Click `+ Register Application`.

![](https://3611017393-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYfIB8nfIibCXf1xNeE%2Fsync%2F7932def4fb1ccfa7dc5e2ff264f01100d0430602.png?generation=1618855583144627\&alt=media)

For name enter `Ghost`, domain select the subdomain that you created at the beginning of this guide, application URL just leave with the default `/` with nothing after it, path enter `ghost`, and deployment mode select `Development` so it looks something like this:

![](https://3611017393-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYfIB8nfIibCXf1xNeE%2Fsync%2F3ec0924b79e13d812ee79219d97d48ac75072532.png?generation=1618855584379408\&alt=media)

Then click deploy. In order for the Node.js application to be deployed it requires an Apache restart so this could take anywhere from a few minutes to a few hours. If it's been more than 2 hours and it still isn't working please open [a customer service ticket](https://www.helionet.org/index/forum/45-customer-service/) and let us know.

Once the ghost application has been deployed you should be able to go to `ghost.domain.heliohost.org` and see the CMS in action, and if you want to create new articles and access the backend go to `ghost.domain.heliohost.org/ghost/`.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://robertzou1234.gitbook.io/robert-zou/tutorials/ghost.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
