Ghost使ってみた

[Ghost: Turn your audience into a business](https://ghost.org/)
※公式サイトはおしゃれすぎてOSSプロジェクトには見えません😂😂😂

![ghost.org_(1280x720).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/ccd0d23d-2a6e-57cb-ecd6-30ef59d96df7.png)

Ghostとは（英語版Wikipediaより）

> 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.

日本語訳

> Ghostは、JavaScriptで書かれ、MITライセンスの下で配布されている、フリーでオープンソースのブログプラットフォームで、個人ブロガーやオンライン出版物のためのオンライン出版のプロセスを簡素化するために設計されています。

WordPressっぽいやつみたいでして、公式サイトでも比較が出ています。

https://ghost.org/vs/wordpress/

Dockerで簡単に試すことができましたので、記録を残します。

## 環境構築

Docker Hubにオフィシャルイメージがありますのでこれを使います。ご丁寧にdocker-compose.yamlも用意されています。

https://hub.docker.com/_/ghost

```yaml
version: '3.1'

services:

  ghost:
    image: ghost:4-alpine
    restart: always
    ports:
      - 8080:2368
    environment:
      # see https://ghost.org/docs/config/#configuration-options
      database__client: mysql
      database__connection__host: db
      database__connection__user: root
      database__connection__password: example
      database__connection__database: ghost
      # this url value is just an example, and is likely wrong for your environment!
      url: http://localhost:8080
      # contrary to the default mentioned in the linked documentation, this image defaults to NODE_ENV=production (so development mode needs to be explicitly specified if desired)
      #NODE_ENV: development

  db:
    image: mysql:8.0
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example
```

docker-composeで一発起動

```terminal
docker-compose up
```

ログを眺めていると、MySQLの初期化が完了するまではGhostの起動が失敗しますが、何度もリトライして、そのうちうまく起動します。

```
ghost_1  | [2022-05-07 10:20:28] INFO Ghost URL Service Ready in 21.428s
ghost_1  | [2022-05-07 10:20:28] INFO Ghost booted in 21.499s
ghost_1  | [2022-05-07 10:20:28] INFO Adding offloaded job to the queue
ghost_1  | [2022-05-07 10:20:28] INFO Scheduling job update-check at 36 3 6 * * *. Next run on: Sun May 08 2022 06:03:36 GMT+0000 (Coordinated Universal Time)
```

`Ghost booted`のログがでれば起動完了です。

## アクセスしてみよう（一般向けサイト）

ブラウザで`http://localhost:8080`にアクセスします。

* トップ画面
![localhost_8080_(1280x720).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/82dfe55a-0af9-3a83-5819-ac9d8afcd0f6.png)

* ブログ記事画面
![localhost_8080_coming-soon_(1280x720).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/30a22b5f-e1b0-1e21-2f06-b88a5666501a.png)

**おしゃれ**です!!!


## アクセスしてみよう（管理者向けサイト）

管理者向け画面は`http://localhost:8080/ghost/`でアクセスします。（WordPressで言うところの`wp-admin/`です）

* 初期設定
![localhost_8080_ghost_(1280x720).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/e1fa6499-68eb-d2b7-4f8f-482ed2bb667f.png)

初期設定が終わると以下の項目が表示されます。

* Write your first post
* Customize your site
* Import menbers
* Explole Ghost admin

![localhost_8080_ghost_(1280x720) (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/dd35b778-e45b-4e15-9038-e5fdcd1edebd.png)

それぞれ見てみます。

* Write your first post  
  ブログを書く画面です。
  ![localhost_8080_ghost_(1280x720) (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/2404db38-aade-3668-dfda-77a8bf2f34ec.png)

* Customize your site  
  設定画面
  ![localhost_8080_ghost_(1280x720) (3).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/324a7184-d624-5027-9c3a-c2119ff2b071.png)

* Import menbers  
  メンバー登録
  ![localhost_8080_ghost_(1280x720) (4).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/0c6977ee-3302-9e39-5f4e-88655eac1352.png)

* Explole Ghost admin  
  管理者画面
  ![localhost_8080_ghost_(1280x720) (5).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/912669ba-a62b-9dae-33c0-13bbbd01d681.png)

全体的にシンプルですね。

テーマを変えたりもできます。

![localhost_8080_ghost_(1280x720) (8).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/d757d510-9531-f142-2f0c-b1036ded5d50.png)

## 特徴
1. インテグレーション
    プラグインを足して機能拡張ができる仕組みです。Gmail、GitHub、Twitter、Stripeなどを始め、かなりの数のインテグレーションが用意されています。
    ![ghost.org_integrations_(1280x720).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/08735865-9460-779c-1870-d8508c80526c.png)

1. マーケットプレイス  
    テーマやインテグレーションが色々公開されています。有料のものもあるようです。  
    ![ghost.org_marketplace_(1280x720).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/4a846b53-0091-a25e-c4eb-d141b2171374.png)
 1. headless CMS  
    APIベースのアーキテクチャを採用しているので、headless化ができるようです。  
    ![ghost.org_docs_architecture_(1280x720) (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/e956e0d7-073d-b71a-26aa-08d869c83a2c.png)  
    出典：https://ghost.org/docs/architecture/    
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/dbb397c7-d565-17f5-cb9e-a48e0805eeae.png)    
    出典：https://ghost.org/docs/jamstack/

# まとめ

Ghost使ってみました。

Googleトレンドで流行ってるか見てみたのですが、Ghostが一般的な言葉なので、いまいちわかりませんでした。

![trends.google.co.jp_trends_explore_cat=13&q=wordpress,ghost(1280x720).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/9ae6ad30-2281-5a85-c992-cf0bb8348c12.png)

DockerHubのダウンロード数はWordPressが`1B+`に対して`100M+`でした。（Official Imageで100M+だったものは`kibana`や`cassandra`などがありました。）人気なのはやはりWordPressのようです。