<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>GitHub Pages | yewton.net</title><link>https://www.yewton.net/tags/github-pages/</link><atom:link href="https://www.yewton.net/tags/github-pages/index.xml" rel="self" type="application/rss+xml"/><description>GitHub Pages</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>ja</language><lastBuildDate>Mon, 13 Jan 2020 00:00:00 +0000</lastBuildDate><image><url>https://www.yewton.net/media/sharing.png</url><title>GitHub Pages</title><link>https://www.yewton.net/tags/github-pages/</link></image><item><title>GitHub Pages + Cloudflare から Netlify に移行した</title><link>https://www.yewton.net/2020/01/13/hugo-netlify/</link><pubDate>Mon, 13 Jan 2020 00:00:00 +0000</pubDate><guid>https://www.yewton.net/2020/01/13/hugo-netlify/</guid><description>&lt;p&gt;&lt;a href="https://www.yewton.net/2016/02/02/blog-with-hugo/"&gt;この記事にあるとおり&lt;/a&gt; 、当初このサイトは &lt;a href="https://pages.github.com/" target="_blank" rel="noopener"&gt;GitHub Pages&lt;/a&gt; でホストされ、
&lt;a href="https://www.cloudflare.com/" target="_blank" rel="noopener"&gt;Cloudflare CDN&lt;/a&gt; を利用して配信していた。&lt;/p&gt;
&lt;p&gt;だが先日 &lt;a href="https://www.yewton.net/2020/01/06/made-with-academic/"&gt;テーマを変えた&lt;/a&gt; ときに、既に使われていないリソースがそのまま残ってしまっていることに気がついた。
単純に &lt;code&gt;/public&lt;/code&gt; 以下を &lt;code&gt;git add -a&lt;/code&gt; しているだけなので、明示的に消さなければ反映されなくて当然だった。&lt;/p&gt;
&lt;p&gt;デプロイスクリプトを見直してもよかったが、 &lt;a href="https://gohugo.io/" target="_blank" rel="noopener"&gt;Hugo&lt;/a&gt; 自体が &lt;a href="https://www.netlify.com/" target="_blank" rel="noopener"&gt;Netlify&lt;/a&gt; でホストされているし、
&lt;a href="https://gohugo.io/hosting-and-deployment/hosting-on-netlify/" target="_blank" rel="noopener"&gt;Netlify でホストするときの公式ドキュメントも用意されている&lt;/a&gt; し、
&lt;a href="https://docs.netlify.com/site-deploys/post-processing/#post-processing-features" target="_blank" rel="noopener"&gt;アセットの最適化機能&lt;/a&gt; とかもついてくるし、何より &lt;a href="https://www.netlify.com/pricing/" target="_blank" rel="noopener"&gt;無料だし&lt;/a&gt; 、
ということで、移行することを決めた。&lt;/p&gt;
&lt;div class="ox-hugo-toc toc"&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div class="heading"&gt;&amp;#30446;&amp;#27425;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#%e3%83%87%e3%83%97%e3%83%ad%e3%82%a4%e6%89%8b%e9%a0%86"&gt;デプロイ手順&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e3%83%89%e3%83%a1%e3%82%a4%e3%83%b3%e7%a7%bb%e8%a1%8c%e6%89%8b%e9%a0%86"&gt;ドメイン移行手順&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#github-pages-%e3%81%a7%e6%8f%90%e4%be%9b%e3%81%97%e3%81%a6%e3%81%84%e3%81%9f%e3%81%9d%e3%81%ae%e4%bb%96%e3%81%ae%e3%83%aa%e3%83%9d%e3%82%b8%e3%83%88%e3%83%aa%e3%81%ae%e3%83%aa%e3%83%80%e3%82%a4%e3%83%ac%e3%82%af%e3%83%88%e8%a8%ad%e5%ae%9a%e6%89%8b%e9%a0%86"&gt;GitHub Pages で提供していたその他のリポジトリのリダイレクト設定手順&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%e3%81%9d%e3%81%ae%e5%be%8c"&gt;その後&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;!--endtoc--&gt;
&lt;h2 id="デプロイ手順"&gt;デプロイ手順&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://gohugo.io/hosting-and-deployment/hosting-on-netlify/" target="_blank" rel="noopener"&gt;公式ドキュメント&lt;/a&gt; を超ざっくり要約すると、&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://app.netlify.com/" target="_blank" rel="noopener"&gt;Netlify でアカウント作成&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gohugo.io/hosting-and-deployment/hosting-on-netlify/#configure-hugo-version-in-netlify" target="_blank" rel="noopener"&gt;&lt;code&gt;netlify.toml&lt;/code&gt;&lt;/a&gt; をドキュメントを参考に配置&lt;/li&gt;
&lt;li&gt;連携する GitHub リポジトリを選択&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Deploy site&lt;/code&gt; ボタンをポチる&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;以上。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;これだけで &lt;code&gt;hoge.netlify.com&lt;/code&gt; でアクセス出来るようになる。いい時代になった。&lt;/p&gt;
&lt;h2 id="ドメイン移行手順"&gt;ドメイン移行手順&lt;/h2&gt;
&lt;p&gt;ただドメインも移行する場合はもう一手間必要で、&lt;a href="https://docs.netlify.com/domains-https/custom-domains/configure-external-dns/" target="_blank" rel="noopener"&gt;Netlify の公式ドキュメント&lt;/a&gt; に従って
DNS レコードの設定をする必要がある。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cloudflare.com/" target="_blank" rel="noopener"&gt;Cloudflare&lt;/a&gt; の場合は、以下のように Cloudflare のダッシュボードで、
各ドメインが Netlify への &lt;code&gt;CNAME&lt;/code&gt; となるように設定する。&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://www.yewton.net/2020/01/13/hugo-netlify/2020-01-13_15-37-38_cloudflare.png"&gt;
&lt;/figure&gt;
&lt;p&gt;このとき、 &lt;strong&gt;&lt;code&gt;Proxy status&lt;/code&gt; が &lt;code&gt;DNS only&lt;/code&gt; となるように&lt;/strong&gt;
(雲のアイコンがオレンジではなくグレーになるように) 設定する必要がある。&lt;/p&gt;
&lt;p&gt;さもないと、 Cloudflare の CDN 機能が間に挟まってしまい、 Netlify 側から認識されない。&lt;/p&gt;
&lt;p&gt;なお、 &lt;strong&gt;&lt;code&gt;DNS only&lt;/code&gt; にした時点で Cloudflare が発行した SSL 証明書は無効になる&lt;/strong&gt; 。
そのため、ここからなるべく早く &lt;a href="https://docs.netlify.com/domains-https/https-ssl/#certificate-service-types" target="_blank" rel="noopener"&gt;Netlify 側の SSL 証明書の設定&lt;/a&gt; をした方がいい。&lt;/p&gt;
&lt;p&gt;当サイトの場合は設定してから1時間もしない内に SSL 証明書が有効になっていた。&lt;/p&gt;
&lt;h2 id="github-pages-で提供していたその他のリポジトリのリダイレクト設定手順"&gt;GitHub Pages で提供していたその他のリポジトリのリダイレクト設定手順&lt;/h2&gt;
&lt;p&gt;サイトだけなら以上で万事完了なのだけれど、 GitHub Pages を利用していた場合の注意点として、
&lt;code&gt;github.io&lt;/code&gt; リポジトリで &lt;code&gt;CNAME&lt;/code&gt; を設定していた場合、それ以外で Pages 機能を利用しているリポジトリも同様のドメインでアクセスされるようになっている。
つまり、 &lt;code&gt;github.io&lt;/code&gt; を Netlify へ向けた時点で、 &lt;strong&gt;それ以外のリポジトリが全てリンク切れとなる。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;そのため、適切にリダイレクトするようにしなければならない。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://docs.netlify.com/routing/redirects/" target="_blank" rel="noopener"&gt;Netlify の公式ドキュメント&lt;/a&gt; に従ってやればいい…と思ったのだけれど、
原因は不明だが &lt;strong&gt;&lt;code&gt;netlify.toml&lt;/code&gt; で設定しようとしても反映されなかった&lt;/strong&gt; 。&lt;/p&gt;
&lt;p&gt;最終的な &lt;code&gt;_redirects&lt;/code&gt; ファイルの内容は以下のようになった:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;https://yewton-net.netlify.com/* https://www.yewton.net/:splat 301!
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/swagger-top-down-playground/* https://yewton.github.io/swagger-top-down-playground/:splat 301!
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/dockerfiles/* https://yewton.github.io/dockerfiles/:splat 301!
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/kafka-doc-ja/* https://yewton.github.io/kafka-doc-ja/:splat 301!
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="その後"&gt;その後&lt;/h2&gt;
&lt;p&gt;移行ついでに &lt;a href="https://developer.okta.com/blog/2019/04/11/site-security-cloudflare-netlify" target="_blank" rel="noopener"&gt;How to Configure Better Web Site Security with Cloudflare and Netlify | Okta Developer&lt;/a&gt; を参考に
&lt;a href="https://securityheaders.com/" target="_blank" rel="noopener"&gt;Security Headers&lt;/a&gt; や &lt;a href="https://www.ssllabs.com/ssltest/index.html" target="_blank" rel="noopener"&gt;SSL Server Test&lt;/a&gt; で高評価になるように設定を見直したりなどした。&lt;/p&gt;
&lt;p&gt;ただこれはあんまり理解しないで書かれてる通りやっただけなところがあるので、いつか改めて記事にしたい。&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://www.yewton.net/2020/01/13/hugo-netlify/2020-01-13_15-12-54_securityheaders.png"&gt;
&lt;/figure&gt;
&lt;figure&gt;&lt;img src="https://www.yewton.net/2020/01/13/hugo-netlify/2020-01-13_15-15-03_qualys.png"&gt;
&lt;/figure&gt;</description></item></channel></rss>