Ghost(CMS)のテーマ開発環境と自動デプロイのセットアップ
Ghostとは
Ghost Foundationが提供するMIT LicenseのCMS。ホスティング代行サービスもあるが、 高額なのでセルフホスティングしよう。 Linodeとかで動かせば安い。メモリ1GBあれば足りる。
テーマ開発環境を構築
ボイラープレート
Ghostのオフィシャルイメージを使う...が、設定を書くのがめんどくさかった 😔 ので
こちらのボイラープレートをForkして使用させていただく。感謝 🤗
自分で書く場合
version: '3.7'
# Thank you! https://github.com/amritsarstartups/ghost-theme-docker
services:
ghost-theme-docker:
image: ghost-theme-docker:1.0
container_name: ghost-theme-docker
restart: unless-stopped
build:
context: .
dockerfile: Dockerfile
volumes:
- './.tmp/data:/var/lib/ghost/content/data'
- './.tmp/images:/var/lib/ghost/content/images'
- './.tmp/settings:/var/lib/ghost/content/settings'
- './Ease:/var/lib/ghost/content/themes/Ease'
ports:
- "3102:2368"
environment:
- NODE_ENV=development
FROM ghost
LABEL maintainer="あなたの名前"
WORKDIR /var/lib/ghost
RUN ghost config url http://localhost:3102
EXPOSE 2368
編集したいテーマをFork
テーマのベースとしては、今回はこちらをForkする。
フォーク後、Actionsを有効化する。
submoduleとして追加
git submodule add https://github.com/あなたのユーザー名/Ease.git
sed -i '' -e 's/Pico/Ease/g' docker-compose.yml
docker-compose.ymlのPicoをEaseに置換している。ここは編集するテーマに応じて変えること。
ローカルで動かす
docker-compose up
localhost:3102/ghostを開けばGhostのセットアップ画面が出るので、ユーザーを追加する。
localhost:3102/ghost/#/settings/design/change-themeでテーマを変更する。
Advanced
から追加テーマを選び、Activate
をクリックする。
テーマの開発
Handlebarsで書かれているため、WordPressの感覚と違うというか、簡易Bladeみたいなものだと思えばいい。
Handlebarsの構文はここで勉強できる。
GitHub Actionsを使ったテーマのデプロイ
以下、本番環境にGhostをセットアップした前提。
インテグレーションを用意
GitHubのインテグレーションをGhostに付ける。
2021年11月27日現在、「カスタムインテグレーション」扱いになるため、ghost.ioなら「Pro Creator」プラン以上でないといけない。高すぎる。
「Settings」→「Integrations」から「Add custom integration」を選ぶ。アイコンや名前は自分でつける。
名前 | リポジトリのシークレット |
---|---|
Admin API key | GHOST_ADMIN_API_KEY |
API URL | GHOST_ADMIN_API_URL |
▲表示された情報を、テーマのリポジトリのシークレットに設定する。ghost-theme-docker
のリポジトリじゃないよ。
テーマをプッシュするとTryGhost/action-deploy-theme
が実行され、Ghost本番環境にテーマがアップロードされる。
Discussion