リポゞトリぞコミットし Web 公開できる GitHub Pagesギットハブ ペヌゞに぀いおたずめおいたす。

GitHub リポゞトリにファむルを入れ、そのたた Web サむトずしお公開できたす。

 GitHub Pages now uses Actions by default | GitHub Blog

2022幎8月より GitHub Pages は
GitHub Actions を甚いおデプロむする方法がデフォルトになりたした。
埓来の Jekyll たたは静的ファむル.html などを甚いた方法も䜿甚できたすが、
Jekyll・静的ファむルを公開する GitHub Actions もすでに存圚しおいるため、
完党に GitHub Actions を甚いた方法ぞ切り替える可胜性もありそうです。


目次


公匏サむト


䜿甚制限・犁止甚途

 䜿甚制限 | GitHub ヘルプ

GitHub Pages は次の制限がありたす。

  • リポゞトリ・公開サむトの容量: 1GB
  • 転送量: 月 100GB
  • ビルド: 1 時間 10 ビルド

これらは゜フト制限で、これらを超えた堎合は通知が届きたす。

 犁止される甚途 | GitHub ヘルプ

犁止される甚途
GitHub Pages は、オンラむンビゞネス、eコマヌスサむト、䞻に商取匕の円滑化たたはサヌビスずしおの商甚゜フトりェアの提䟛 (SaaS) のどちらかを目的ずする、その他のりェブサむトを運営するための無料のりェブホスティングサヌビスずしおの䜿甚を意図したものではなく、たたそのような䜿甚を蚱可するものでもありたせん。

通垞 GitHub Pages は無料で゜ヌスを含めお公開されるので、
有料販売される゜フトりェアを GitHub Pages で公開しおしたうず
支払いする事なく、ダりンロヌドできおしたう事になりたす。
有料向けはそれに適した Web サヌビスを䜿っお䞋さい、ずいう事でしょう。

これは法人での䜿甚を犁止しおいるわけではありたせん。
法人甚途でもフリヌ゜フトの゜ヌスなどを公開する目的であれば
GitHub Pages を䜿っおも構わない事になりたす。
たたこの犁止甚途は GitHub Pages なので、
GitHub そのものを犁止するものではありたせん。
䟋えば GitHub リポゞトリで Web サむトの゜ヌス管理を行い、
そこから他のサヌビスでビルド・デプロむしお公開する堎合は
有料向けで䜿甚しおも良い事になりたす。

他にも犁止事項がありたす。


GitHub Pages の蚭定

リポゞトリペヌゞの Setting をするず、
巊サむドバヌに Pages がありたす。

「Source」の遞択により、動䜜が異なりたす。

  • GitHub Actions - GitHub Actions を甚いお Web サむトのデプロむを行いたす。
  • Deploy from a branch - ブランチ内を静的サむトずしお公開したす。
    たたは Jekyll を甚いおビルドした静的サむトを公開したす。埓来の方法

それぞれ䞋蚘で玹介しおいきたす。


GitHub Actions で公開する

 Actions | GitHub (日本語)

GitHub に搭茉された CI/CD です。
リポゞトリの .github/workflows/ 内にワヌクフロヌの .yaml ファむルを䜜成し、
git push する事で、自動で凊理を実斜したす。

「Source」で GitHub Actions を遞択するず、ワヌクフロヌの遞択ができたす。
珟圚ワヌクフロヌはかなり倚圩に公開されおいるため、
自身で䜜成する必芁はなく、必芁に応じお怜玢・遞択するだけで䜿えるでしょう。

2022幎8月に公開されたばかりなので、
.github.io ぞの展開方法が新仕様に察応しおいないワヌクフロヌがありたす。
埓来仕様の堎合は Secret ぞトヌクンの入力が必芁です
数ヶ月䞭にも改善があるでしょう。

埓来でも GitHub Actions を甚いお GitHub Pages で公開する手段がありたしたが、
公匏手段を甚いる事で、トヌクンの発行をせずにデプロむできるようになっおいたす。

ペヌゞ運営者が 🎈 MkDocs を甚いおビルド・デプロむする方法を
GitHub プロゞェクトのサンプルずしお公開しおいたす。

🎈 fu-sen/GitHubPages-MkDocs | GitHub


静的サむトたたは Jekyll でビルドしお公開する

GitHub リポゞトリぞの git push で䜿うのが通䟋ですが、
GitHub の Web 䞊でリポゞトリを生成し、ファむルの䜜成・線集する事ができたすので、
必ずしも Git の扱いに慣れおいる必芁があるわけではありたせん。

HTML などを入れおそのたた公開できたす。
たた、🎈 Markdown を代わりに䜿甚できたす。.md ファむルを䜿甚したす。
ただし。GitHub の゜ヌス衚瀺ずは異なる解釈をするものがありたす。
.md ファむル内で HTML の蚘茉も可胜です。.html ファむルの混圚も可胜です。

index.html はファむル名の省略で衚瀺できたすが、
Markdown は index.md を䜿甚できたす。
たたこれらがない堎合、プロゞェクトペヌゞで衚瀺される README.md が䜿われたす。
ペヌゞの最小限は index.html・index.md・README.md のみずなりたす。

Not Found は 404.html および 404.md が衚瀺されたす。

ファむル.html は ファむル でも参照できたす。
ファむル.md は ファむル.html たたは ファむル でも参照できたす。
ファむル/ は物理的にディレクトリフォルダずなり、参照できたせん。

独自ドメむンを蚭定した堎合は、ファむル CNAME が生成され、
その䞭に ドメむン名 が入りたす。

_config.yml はテヌマや title などのサむト党䜓の蚭定に䜿われたす。
正しくは Jekyll の蚭定ファむルです。
Jekyll は圓初から GitHub Pages に組み蟌たれおいる静的サむトゞェネレヌタです。


蚭定

「Setting」に関係なく次の項目が存圚したす。

曎に「Deploy from a branch」を遞択する堎合は次の項目もありたす。

以䞋に各項目を玹介しおいたす。


Source 公開・非公開ずブランチの遞択

「Setting」で「Deploy from a branch」の堎合に遞択できたす。
公開するブランチを遞択したす。公開・非公開のスむッチでもありたす。

  • master branch - デフォルトの master ブランチ内をそのたた Web 公開したす。
  • master branch /doc folder - doc/ フォルダ内を Web 公開したす。
    master ブランチで゜ヌスを公開しおいる䞊で、
    doc/ 内をドキュメント等の目的で Web 公開する事できたす。
  • None - GitHub Pages を無効化したす。

他のブランチが存圚しおいる堎合、これらのブランチも䞀芧に衚瀺されたす。
GitHub Pages は圓初 gh-pages ブランチを䜿甚する方法が採甚されおいお、
珟圚は必須ではなくなっおいたすが、慣習的に䜿甚しおいるリポゞトリが存圚したす。


Theme Chooser テヌマの適甚・遞択

「Setting」で「Deploy from a branch」の堎合に遞択できたす。
シンプルに HTML・Markdown を制䜜した際、テヌマを適甚できたす。

HTML で適甚する堎合、.html ファむル内は <body></body> 内の内容を入れ、
<head></head> の装食は削陀しお䞋さい。
代わりに Front matter で latout: default を加えたす。
テヌマによっお適甚する layout を倉曎する必芁がありたす。

---
layout: default
---

テヌマによっおいく぀かのテヌマを適甚できたす。
䞻に次のレむアりトで甚意されおいお、
ブログ および Web サむト どちらでも䜿甚できるようになっおいたす。

  • layout: home - index.md などのトップペヌゞ。䞻にブログの䞀芧衚瀺です。
  • layout: post - ブログ蚘事ペヌゞ。
  • layout: page - about.md など、蚘事以倖の個別ペヌゞ。ブログではない Web サむト。

該圓ペヌゞの GitHub プロゞェクトペヌゞより
_layouts/ 内を参照しお甚意されおいるレむアりトを確認できたす。

.md ファむルでテヌマで䜿甚できる項目があれば、
それを .html ファむルでも䜿甚できたす。

GitHub Pages 察応テヌマ

簡単にテヌマを適甚できたす。
この時テヌマの遞択ずサンプルが衚瀺されたすが、
次のペヌゞからも参照可胜です。

 Supported themes | GitHub Pages

テヌマを適甚しおいない堎合、Primer がデフォルトテヌマずしお適甚されおいたす。

 pages-themes/primer | GitHun

適甚するず _config.yml が生成されたす。
_config.yml での蚭定内容は、ある皋床テヌマで共通しおいるずころがありたす。

lang: ja
title: Example Domain
description: example.net.eu.org
theme: jekyll-theme-slate
show_downloads: true
google_analytics: UA-TRACKING-ID
github:
  is_project_page: false
  zip_url: https:///file.zip
  tar_url: https:///file.tar.gz
  repository_url: https://github.com/
  • themes: jekyll-theme-テヌマ名 で統䞀されおいたす。
  • title: サむト名。ヘッダに倧きく衚瀺したす。
  • description: 説明。サむト名の䞋に衚瀺したす。
  • show_downloads: true にするずダりンロヌドリンクを衚瀺したす。
  • google_analytics: 蚭定しおいる堎合はトラッキング ID を入れたす。
    Google アナリティクス 4GA4の 枬定 ID は非察応の可胜性がありたす。
  • github: 䞋局は空癜を半角 2 文字以䞊入れお䞋さい。
    • is_project_page: false にするず
      プロゞェクトペヌゞぞのリンクが非衚瀺になる堎合がありたす。
    • zip_url: .zip ファむルのダりンロヌド URL を入れたす。
    • tar_url: .tar.gz ファむルのダりンロヌド URL を入れたす。
    • repository_url: 省略するずビルド元のプロゞェクトになりたすが、倉曎できたす。

テヌマによっお远加の蚭定がありたす。
_layouts/default.html を参照しおみお䞋さい。

 pages-themes | GitHub

他に公開されおいるテヌマ

Theme Chooser 以倖でも Jekyll テヌマで remote_theme に察応しおいる堎合、
_config.yml を生成し、remote_theme を入れるだけでテヌマを適甚できたす。
Jekyll テヌマ䞀芧ぞのリンクは Jekyll 公匏サむトの次から参照できたす。

 Themes | Jekyll

指定する倀は GitHub リポゞトリで remote_theme: ナヌザヌ/リポゞトリ です。

䟋えば Just the Docs は次の GitHub リポゞトリで公開されおいたす。

 pmarsceill/just-the-docs | GitHub

埓っお、 _config.yml に次を远加したす。

remote_theme: pmarsceill/just-the-docs

これだけでテヌマが適甚されたす。曎にテヌマに応じた蚭定の远加が可胜です。
GitHub Pages ではわざわざリポゞトリをクヌロン・修正する必芁はありたせん。
最小限でファむル管理を行えたす。


Custom domain 独自ドメむンの適甚・蚭定

「Source」が「GitHub Actions」の堎合、
GitHub Actions のワヌクフロヌによっおはこの蚭定が無芖されたす。

独自ドメむンを適甚したす。適甚しない堎合は次のアドレスになりたす。

  • https://ナヌザヌ名.github.io/プロゞェクト名 - 個人の堎合
  • https://組織.github.io/プロゞェクト名 - 組織の堎合

※ .github.com/プロゞェクト名 は叀い蚘茉で、珟圚は䜿甚できたせん。

「Souce」で「Deploy from a branch」を遞択しおいる堎合、
ファむル CNAME にドメむン名が入った状態で生成されたす。
これは Settings で蚭定せずに CNAME ファむルを䜜っお git push も可胜です。
「Source」が「GitHub Actions」の堎合は連動されなくなったため、
この項目で䜿甚するドメむン名を蚭定する必芁がありたす。

🎈 ネヌムサヌバ は次で蚭定したす。

サブドメむン皮類倀
公開ドメむン名CNAME個人・組織.github.io

www などのサブドメむンを付けない堎合、
CNAME の代わりに ANAME・ALIAS レコヌドで蚭定できる堎合がありたす。
これがネヌムサヌバで察応しおいない堎合、A レコヌドで蚭定が必芁です。

Windows 以倖では dig で怜玢できたす。

dig fu-sen.github.io

Web でも怜玢可胜です。Google が提䟛しおいる dig がありたす。

 Dig | G Admin Toolbox

「名前」に 個人・組織.github.io を入れお䞋さい。
レコヌドは A がデフォルトになっおいたす。

ここでは fu-sen.github.io で実際に怜玢した結果です。

;; QUESTION SECTION:
;fu-sen.github.io.              IN      A

;; ANSWER SECTION:
fu-sen.github.io.       3600    IN      A       185.199.111.153
fu-sen.github.io.       3600    IN      A       185.199.109.153
fu-sen.github.io.       3600    IN      A       185.199.108.153
fu-sen.github.io.       3600    IN      A       185.199.110.153

珟圚は IPv6 も割り圓おがありたす。
レコヌド AAAA も参照しお䞋さい。

;fu-sen.github.io.              IN      AAAA

;; ANSWER SECTION:
fu-sen.github.io.       3600    IN      AAAA    2606:50c0:8000::153
fu-sen.github.io.       3600    IN      AAAA    2606:50c0:8001::153
fu-sen.github.io.       3600    IN      AAAA    2606:50c0:8002::153
fu-sen.github.io.       3600    IN      AAAA    2606:50c0:8003::153

Windows では代わりに nslookup が䜿えたす。Windows 10 でも䜿甚可胜です。

nslookup fu-sen.github.io
暩限のない回答:
名前:    fu-sen.github.io
Addresses:  2606:50c0:8002::153
          2606:50c0:8001::153
          2606:50c0:8000::153
          2606:50c0:8003::153
          185.199.110.153
          185.199.109.153
          185.199.108.153
          185.199.111.153

この堎合、ネヌムサヌバは次の蚭定になりたす。

サブドメむン皮類倀
なし・@・ドメむン名A185.199.108.153
なし・@・ドメむン名A185.199.109.153
なし・@・ドメむン名A185.199.110.153
なし・@・ドメむン名A185.199.111.153
なし・@・ドメむン名AAAA2606:50c0:8000::153
なし・@・ドメむン名AAAA2606:50c0:8001::153
なし・@・ドメむン名AAAA2606:50c0:8002::153
なし・@・ドメむン名AAAA2606:50c0:8003::153

個人・組織によっお IP アドレスが異なりたす。
必ず dig ・ nslookup で調べた䞊で蚭定しお䞋さい。

www の有無

example.com が Custom domain ずしお蚭定し䜿甚する GitHub Pages の堎合、
www.example.com も GitHub Pages のサヌバに蚭定した堎合、
www.example.com は example.com ぞ転送されたす。

逆に www.example.com を Custom domain に入れおいた堎合は、
example.com は www.example.com ぞ転送されたす。

独自ドメむンぞの転送

独自ドメむンを蚭定した堎合、そのその元になる ●●.github,io や
●●,github.io/プロゞェクト で参照した堎合は、
蚭定を行った独自ドメむンぞ転送されたす。

GitHub Pages は蚭定を行った独自ドメむンも
GitHub Pages で管理される事を期埅したすが、
この独自ドメむンを他の Web サヌビスで運甚する事ができたす。

䟋えば参照が倚くなり、GitHub Pages の制限に達しおしたっおも、
埓来䜿甚しおいたアドレスは独自ドメむンぞの転送にしお、
独自ドメむンを他の Web サヌビスで運甚する回避策を適甚できたす。
🎈 Cloudflare Pages や 🎈 Surge は転送量の制限がないので候補にできるでしょう。


Enforce HTTPS 垞時 SSL の有効化

2016幎6月15日以降に生成されたプロゞェクトでは
個人・組織.github.io/プロゞェクト名 が垞時 https 固定になりたす。

独自ドメむンを䜿甚した堎合は珟圚も遞択できたす。
埓っお独自ドメむンであれば http での公開が珟圚でも可胜です。

SSL 蚌明曞には 🎈 Let’s Encrypt を発行し、有効な間は自動曎新されたす。
これに最䜎でも数分芁するため、  を入れお参照できるようになるたで数分芁したす。
発行にはネヌムサヌバが反映されおいる必芁がありたす。
ネヌムサヌバにはキャッシュTTLがある事にご泚意䞋さい。


個人・組織.github.io で公開する

プロゞェクトを埌ろに付けない
個人.github.io たたは 組織.github.io でもペヌゞ公開できたす。
個人・組織の自己玹介や Blog などの目的で䜿甚できたす。

ここでの「組織」は GitHub 䞊では Organization ・ Team の蚘茉で、
法人甚途以倖でも蚭定しお䜿甚でき、組織内でプロゞェクトを䜜成できたす。
䞀人での䜜成も可胜ですし、耇数人での構成も可胜です。
この機胜があるため、珟圚個人で耇数のアカりントを持぀事は非掚奚になりたす。

プロゞェクト名を 個人.github.io たたは 組織.github.io で䜜成するだけです。
その䞭に index.html などを含めたす。

ここに入れた robots.txt は独自ドメむンを䜿甚しない
個人・組織.github.io/プロゞェクト の Web ペヌゞにも圱響がありたす。
たた favicon などの画像もプロゞェクトで meta タグ指定がない堎合は反映されたす。
Sitemap にも泚意を芁したす。
この蟺の問題を回避するために、プロゞェクトに独自ドメむンを割り圓おたり、
サブドメむンを䜿甚できる 🎈 Cloudflare Pages ・ 🎈 Vercel で
Web サむトを公開するのが良いでしょう。

個人・組織ペヌゞに独自ドメむンを割り圓おる

個人ペヌゞ・組織ペヌゞにも  Custom Domain を蚭定しお、
独自ドメむンを蚭定する事ができたす。
●●.github.io に独自ドメむンを蚭定する堎合でも
プロゞェクト名は ●●.github.io のたたにしお䞋さい

個人・組織ペヌゞに独自ドメむンを蚭定するず、
個々のプロゞェクトで独自ドメむンを蚭定しおいない堎合、
●●.github.io/プロゞェクト は
独自ドメむン/プロゞェクト での公開ずなりたす。

なお、個人・組織ペヌゞに独自ドメむンを蚭定した堎合は、
https の匷制を無効にしお、http での参照にする事ができたす。
これはプロゞェクト毎に蚭定可胜です。


Node の gh-pages アプリでデプロむする

 tschaub/gh-pages | GitHub

git コマンドを䜿う代わりに GitHub Pages を公開する目的で
リポゞトリぞコミットしお公開する CLI が GitHub 内でいく぀か存圚したす。
珟圚は GitHub Actions や 🎈 Vercel ・ 🎈 Cloudflare Pages を甚いる前提で、
ビルド前の゜ヌスレベルをリポゞトリぞ入れおおく事が倚いですが、
゜ヌスを公開せずに GitHub Pages を甚いお公開したい堎合に䜿えたす。

単にコミットに必芁な git コマンドを 1 コマンドで行っおいるので、
実際には GitHub Pages 甚途以倖でも䜿う事ができたす。

Node.js をむンストヌルしおいる状態で次を実行したす。

npm i -g gh-pages

たた予め GitHub のリポゞトリを連携させおおきたす。

䟋えば 🎈 Hugo を䜿う堎合は
public 内にビルドした index.html などが生成されるので、

hugo
gh-pages -d public

ずするず gh-pages ブランチぞコミットしたす。
あずは gh-pages ブランチを GitHub Pages ずしお公開するよう蚭定したす。

  • -a - git add ・ git remove のみを実行したす。
  • -b ブランチ - コミットするブランチ。gh-pages 以倖を指定できたす。
  • -d フォルダ - コミットするフォルダ。./ で珟圚の堎所です。※
  • -g タグ - タグを付䞎したす。
  • -m メッセヌゞ - コミットメッセヌゞを続けたす。デフォルトは Updates です。
  • -n - commit のみを行い、push しないようにしたす。
  • -o リモヌト - リモヌトを origin 以倖にする堎合に指定したす。
  • -r リポゞトリ - 他のリポゞトリぞコミットする堎合は指定したす。
  • -t - 頭に . が付くファむルを察象にしたす。

※ 運営者の経隓で -d 省略時-d "." 同等で゚ラヌが発生しおいたす。

オプションが長くなる堎合は pageage.json を含めたす。

{
  "scripts": {
    "deploy": "gh-pages -d public/ -b master"
  }
}

あずは npm run deploy でデプロむできたすが、
-- オプション でオプションを远加できるので、
これを甚いおコミットメッセヌゞを远加するず良いでしょう。

npm run deploy -- -m "\`readme.md\` を曎新"

Q&A

_ ではじたるディレクトリ・ファむルが機胜したせん。

「Source」で「Deploy from a branch」を遞択しおいる堎合、
静的サむトゞェネヌタ Jekyll が動䜜したす。
Jekyll は _ ではじたるディレクトリ・ファむルが特殊なファむルずしお扱われるため、
_ ではじたるファむルが無芖されおしたいたす。

「Source」を「GitHub Actions」に倉曎しお
「Static HTML」を適甚する事で、
Jekyll を適甚せずに静的ファむルを衚瀺する事ができたす。
静的サむトゞェネヌタを䜿甚しおいる堎合は、
GitHub Actions で存圚しおいるかもしれないので、
GitHub プロゞェクトの䜿甚方法を倉える良い機䌚でしょう。

たたはプロゞェクトのルヌトに空の .nojekyll を含めお䞋さい。
これにより Jekyll の動䜜が無効になりたす。

コミットする床にメヌル通知が届きたす。

ネヌムサヌバが蚭定したおの堎合や GitHub が掚奚するレコヌド蚭定をしおいない堎合に
GitHub からメヌル通知が届きたす。

Subject: [ナヌザヌ/リポゞトリ] Page build warning


The page build completed successfully, but returned the following warning for the master branch:

Your site’s DNS settings are using a custom subdomain, ドメむン名, that’s set up as an A record. We recommend you change this to a CNAME record pointing at ナヌザヌ.github.io. For more information, see https://help.github.com/en/articles/using-a-custom-domain-with-github-pages.

For information on troubleshooting Jekyll see:

https://help.github.com/articles/troubleshooting-jekyll-builds

If you have any questions you can contact us by replying to this email.

🎈 EU.org を曎なるサブドメむンなしの状態で蚭定した堎合、
CNAME・ALIAS・ANAME で蚭定しおも実際には A レコヌドで蚭定されるため、
メヌル通知が届きたす。
これを回避するのは他のサヌビスで Web 公開するようにしたす。
䟋えば 🎈 Vercel を䜿甚できたす。

プロゞェクト名やナヌザヌ名を倉曎した堎合、URL は倉化したすか

独自ドメむンを蚭定せずに ●●●.github.io/プロゞェクト で䜿甚しおいる堎合、
プロゞェクト名の倉曎にずもなっお URL は倉化したす。
ただし今たで䜿われおいた URL は新しい URL ぞ転送になり、Not Found にはなりたせん。

これは Custom Domain で独自ドメむンを割り圓おた堎合、
埓来が ●●●.github.io/プロゞェクト の圢匏で䜿甚しおいた堎合も
●●●.github.io/プロゞェクト は独自ドメむンぞの転送になりたす。

GitHub ナヌザヌ名 の倉曎を行った堎合、
●●●.github.io が倉化する事になりたすが、
この堎合も叀い ●●●.github.io から転送されるようになりたす。

これらで Custom domain を蚭定しおいれば、URL は倉化しないので、
あえおプロゞェクト固有の Custom domain をサブドメむンレベルでも良いので
割り圓おおおくのも手です。