ダディ伯爵がGCPで独自ドメインSSL対応ブログを無料で簡単に立ち上げた方法を分かりやすく解説します。
本記事では「(3)HEXO環境構築」について記載します。
本記事の作業は、1時間程度で終わると思います。作業が終われば、GAEとHEXOでコンテンツ制作するための環境が出来上がります。ササっと必要な環境を整えましょう。
1.HEXOインストール [所要時間:5分~]
1-1.本体インストール
①mkdir hexo && cd hexo && hexo init
コマンドを入力し、Enterキーを押下します。
16秒ぐらいで終わります。npm WARN ~
が2行出ますが動作上問題はありません。
「プロンプト($)」が表示されたら次に進んでください。
daddy_trevia ~ $ mkdir hexo && cd hexo && hexo init
INFO Cloning hexo-starter to ~/hexo
Cloning into '/home/daddy_trevia/hexo'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 71 (delta 0), reused 0 (delta 0), pack-reused 68
Unpacking objects: 100% (71/71), done.
Submodule 'themes/landscape' (https://github.com/hexojs/hexo-theme-landscape.git) registered for path 'themes/landscape'
Cloning into '/home/daddy_trevia/hexo/themes/landscape'...
remote: Enumerating objects: 16, done.
remote: Counting objects: 100% (16/16), done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 893 (delta 3), reused 12 (delta 2), pack-reused 877
Receiving objects: 100% (893/893), 2.56 MiB | 1.87 MiB/s, done.
Resolving deltas: 100% (466/466), done.
Submodule path 'themes/landscape': checked out '73a23c51f8487cfcd7c6deec96ccc7543960d350'
INFO Install dependencies
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.8 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.8: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
added 421 packages from 504 contributors and audited 4697 packages in 16.79s
found 3 vulnerabilities (2 low, 1 moderate)
run `npm audit fix` to fix them, or `npm audit` for details
INFO Start blogging with Hexo!
daddy_trevia ~/hexo $
1-2.テーマをインストール
本体インストールが完了したら、続いてプラグインとテーマをインストールします。indigoに記載されている手順に従って作業を行います。すべて「HEXOディレクトリ」で実行してください。
①git clone git@github.com:yscoder/hexo-theme-indigo.git themes/indigo
コマンドを入力し、Enterキーを押下します。
「プロンプト($)」が表示されたら次に進んでください。
daddy_trevia ~/hexo $ git clone git@github.com:yscoder/hexo-theme-indigo.git themes/indigo
②npm install hexo-renderer-less --save
コマンドを入力し、Enterキーを押下します。
10秒ぐらいで終わります。npm WARN ~
が2行出ますが動作上問題はありません。
「プロンプト($)」が表示されたら次に進んでください。
daddy_trevia ~/hexo $ npm install hexo-renderer-less --save
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.7 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.7: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
+ hexo-renderer-less@1.0.0
added 52 packages from 118 contributors and audited 4781 packages in 10.329s
found 3 vulnerabilities (2 low, 1 moderate)
run `npm audit fix` to fix them, or `npm audit` for details
daddy_trevia ~/hexo $
③npm install hexo-generator-feed --save
コマンドを入力し、Enterキーを押下します。
6秒ぐらいで終わります。npm WARN ~
が2行出ますが動作上問題はありません。
「プロンプト($)」が表示されたら次に進んでください。
daddy_trevia ~/hexo $ npm install hexo-generator-feed --save
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.7 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.7: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
+ hexo-generator-feed@1.2.2
added 1 package from 1 contributor and audited 6932 packages in 6.274s
found 3 vulnerabilities (2 low, 1 moderate)
run `npm audit fix` to fix them, or `npm audit` for details
daddy_trevia ~/hexo $
④npm install hexo-generator-json-content --save
コマンドを入力し、Enterキーを押下します。
8秒ぐらいで終わります。npm WARN ~
が2行出ますが動作上問題はありません。
「プロンプト($)」が表示されたら次に進んでください。
daddy_trevia ~/hexo $ npm install hexo-generator-json-content --save
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.7 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.7: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
+ hexo-generator-json-content@4.1.3
added 6 packages from 24 contributors and audited 6954 packages in 8.335s
found 3 vulnerabilities (2 low, 1 moderate)
run `npm audit fix` to fix them, or `npm audit` for details
daddy_trevia ~/hexo $
⑤npm install hexo-helper-qrcode --save
コマンドを入力し、Enterキーを押下します。
7秒ぐらいで終わります。npm WARN ~
が2行出ますが動作上問題はありません。
「プロンプト($)」が表示されたら次に進んでください。
daddy_trevia ~/hexo $ npm install hexo-helper-qrcode --save
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.7 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.7: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
+ hexo-helper-qrcode@1.0.2
added 2 packages from 2 contributors and audited 6956 packages in 7.242s
found 3 vulnerabilities (2 low, 1 moderate)
run `npm audit fix` to fix them, or `npm audit` for details
daddy_trevia ~/hexo $
⑥hexo new page tags
コマンドを入力し、Enterキーを押下します。
「プロンプト($)」が表示されたら次に進んでください。
daddy_trevia ~/hexo $ hexo new page tags
⑦HEXOディレクトリ/source/tags/index.md
を以下の内容に変更し保存します。
---
title: tags
date: 2019-04-01 21:52:34
layout: tags
comments: false
---
⑧hexo new page categories
コマンドを入力し、Enterキーを押下します。
「プロンプト($)」が表示されたら次に進んでください。
daddy_trevia ~/hexo $ hexo new page categories
⑨HEXOディレクトリ/source/categories/index.md
を以下の内容に変更し保存します。
---
title: categories
date: 2019-04-01 21:52:51
layout: categories
comments: false
---
2.Hexo環境設定 [所要時間:5分~]
2-1.初期設定、テーマ変更
HEXOディレクトリ/_config.yml
を適宜、編集します。
①基本情報を設定します。
title: DADDYTREVIA
subtitle: ダディ伯爵のトレビアンなトリビア(知識の泉)
description: 難解な技術用語を分かりやすく噛み砕き発信します。
keywords: 無料,ブログ,簡単,おすすめ
author: ダディ伯爵
language: ja
timezone: Asia/Tokyo
②URLを設定します。
url: https://daddytrevia.com
③テーマを設定します。
ダディ伯爵は、theme
のデフォルトはlandscapeですがindigoとしています。
theme: indigo
2-2.テーマ初期設定
HEXOディレクトリ/themes/indigo/_config.yml
を適宜、編集します。
①ロゴ画像を設定します。
見て頂ければ、何を設定すればよいかは推測できると思います。
画像ファイルはHEXOディレクトリ/themes/indigo/source/img/
にドラッグアンドドロップします。
# ロゴ
avatar: /img/logo.jpg
# avatar link
avatar_link: /
# ロゴ背景
brand: /img/brand.jpg
# favicon
favicon: /img/logo.jpg
2-3.ロゴファイルの変更
上記の内容と重なりますが、HEXOディレクトリ/themes/indigo/source/img/
に上記で設定した画像ファイルをドラッグアンドドロップします。
3.開発環境のBash設定 [所要時間:5分~]
①開発環境のBash設定を行います。
「.bash_profile」を新規作成し以下の内容の通りとします。
export PATH=$PATH:/home/daddy_trevia/hexo/node_modules/hexo/node_modules/hexo-cli/bin
export PS1='\u \w \$ '
cd $HOME
touch .bash_profile
echo export PATH=\$PATH:$HOME/hexo/node_modules/hexo/node_modules/hexo-cli/bin >.bash_profile
echo export PS1='\u \w \$ ' >>.bash_profile
cat .bash_profile
4.GAE環境設定 [所要時間:5分~]
①Google App Engineの設定を行います。
「app.yaml」を新規作成し以下の内容の通りとします。
runtime: nodejs10
service: default
#インスタンスパラメータ(任意)
instance_class: F1
automatic_scaling:
min_instances: 0
max_instances: 2
default_expiration: "5m"
handlers:
- url: /
secure: always
redirect_http_response_code: 301
static_files: public/index.html
upload: public/index.html
- url: /(.*)/$
secure: always
redirect_http_response_code: 301
static_files: public/\1/index.html
upload: public/(.*)/index.html
- url: /(.*)
secure: always
redirect_http_response_code: 301
static_files: public/\1
upload: public/(.*)
②Google App Engineへアップロードしないフォルダ、ファイルの設定を行います。
以下のコマンドを順にコピーアンドペーストし「.gcloudignore」を作成します。
daddy_trevia ~/hexo $ touch .gcloudignore
daddy_trevia ~/hexo $ echo node_modules/ >>.gcloudignore
daddy_trevia ~/hexo $ echo scaffolds/ >>.gcloudignore
daddy_trevia ~/hexo $ echo source/ >>.gcloudignore
daddy_trevia ~/hexo $ echo themes/ >>.gcloudignore
daddy_trevia ~/hexo $ echo _config.yml >>.gcloudignore
daddy_trevia ~/hexo $ echo app.yaml >>.gcloudignore
daddy_trevia ~/hexo $ echo db.json >>.gcloudignore
daddy_trevia ~/hexo $ echo package.json >>.gcloudignore
daddy_trevia ~/hexo $ echo package-lock.json >>.gcloudignore
daddy_trevia ~/hexo $ echo .gcloudignore >>.gcloudignore
daddy_trevia ~/hexo $ echo .gitignore >>.gcloudignore
daddy_trevia ~/hexo $ cat .gcloudignore
node_modules/
scaffolds/
source/
themes/
_config.yml
app.yaml
db.json
package.json
package-lock.json
.gcloudignore
.gitignore
daddy_trevia ~/hexo $
以上で、GCP上のGAE開発環境(Hexo)の構築完了です。お疲れさまでした。
引き続き、開発環境で記事を作成し、本番環境へ適用する流れについては「hexoの使い方」へ進んでください。
なお、レイアウトを変えたい場合は「hexoのカスタマイズをしてみた」へ進んでください。
違うテーマを選びたい方は「hexoのテーマの選び方」へ進んでください。