Gitlab Pagesを使って、Hugoで生成したWebページを公開してみました。
背景
このブログはGCP上で稼働させていたのですが、無料枠からAlways Freeへの切り替えを行っていなくしばらく非公開になっていました。😇 調べてみると無料のSSG(Static Site Generator)ホスティングがあり、
などがありました。(ほかにも多数)
Github Pagesはプライベートリポジトリ自体は無料で作れるのですが、Github PagesのリポジトリをプライベートにするにはGithub Proでないと利用出来ませんでした。
GitHub pagesってGitHub Proじゃないとprivate repoでは使えないのか。
— spg (@spg_games) September 20, 2020
Gitlab Pagesであればプライベートリポジトリでもページ公開が可能なので、利用してみました。
Gitlabへログイン
https://gitlab.com/users/sign_in
以下のようにGithub, Twitterなどのソーシャルログインに対応しているので、簡単に登録出来ました。
プロジェクトの作成 & 公開ページのpush
こんな感じにプライベートリポジトリで作成出来ます。
templateからリポジトリを作成出来るのですが、SSG公開なので Pages/Hugo
ではなく Pages/Plain HTML
を選びましょう。
作成すると .gitlab-ci.yml
ファイル, public
ディレクトリが作成されます。
public ディレクトリ
- 公開フォルダ。このフォルダをindexとしてHugoで作成したページを格納する
.gitlab-ci.yml ファイル
- git push時に実行されるCIの定義ファイル。
- テンプレートのままであればmaster branchにpushされるとpublic配下のファイルがWebサーバに公開される。
この辺りは こちらのページが詳しいです。
git pushすると {username}.gitlab.io/{repo_name}/ のURLで公開出来ます。
独自ドメインの設定
Settings->Pages から以下のようにGitlab Pagesのドメイン設定が出来ます。
独自ドメインの認証ではDNSサーバ側でCNAMEの設定、TXTレコードでのverificationが必要です。
Let’s EncryptによるSSL証明書の自動更新に対応しています。
またサブドメインでの公開も対応しており、このブログのようにサブドメインurlの独自ドメインでも問題なく利用出来ました。
注意が必要なのはプライベートリポジトリでGitlab Pagesを公開しようとすると、初期設定で「Only Project Members」の権限となりrepoアクセス権限を持っているユーザのみアクセスしか出来なかったので、公開設定が必要です。
Settings->GeneralからPagesを「Everyone」に変更すると、公開できます。GitLab Pagesのアクセスコントロール設定があって、プライベートリポジトリのまま、一般公開出来た😆https://t.co/ZGzeFPZE8K
— spg (@spg_games) September 20, 2020
逆にGitlab Projectメンバー限定のWebサイトの公開とかも出来るので、色々な活用方法がありますね。
まとめ
Gitlab PagesでHugoで生成したWebページを公開してみました。
プライベートリポジトリ利用可能でかつ、独自ドメインにも対応していて、簡単にブログ公開が出来ました。
特に簡単な設定でLet’s Encryptを有効にしたHTTPSブログを公開出来たのでとても気に入りました!😆Gitlab Pages、めちゃくちゃオススメです!
これからどんどん活用したいと思います!