GitHubPagesでWebページ公開してみた

# サマリ
GitHub Pagesを使ってWebページを公開してみました。

# 背景
日頃ICTに触れている社会人として、さすがにそろそろ自作Webページ作成しないとなという謎の義務感に苛まれていた今日この頃。
調べたところ、GitHub Pagesなる、GitHubにコードをあげるだけで公開できるサービスがあるとのこと…
また、GitHubもアカウント作ったまま触っていなかったので練習の意味も込めてやってみることにしました。
（いや取り組む順序）
（まずはHTML書くところが先だろ）


# ゴール
GitHub PagesでサンプルWebページを公開する。

# 対象読者
- GitHub Pagesを使ってみたい方
- 自分（備忘のため）

# 前提
必須：インターネットにつながる環境・PCがあること
推奨：GitHubのアカウント作成が済んでいること
推奨：GitHubに関しての基礎的な理解があること

# 環境
- OS：Window10 Home

# 手順
まず、GitHub Pagesとは何ぞやということで、[公式ページ](https://docs.github.com/ja/pages/getting-started-with-github-pages/about-github-pages)を見てみました。


> GitHub Pages は、GitHub のリポジトリから HTML、CSS、および JavaScript ファイル を直接取得し、任意でビルドプロセスを通じてファイルを実行し、ウェブサイトを公開できる静的なサイトホスティングサービスです。

とのことです。

静的な、という単語もあるように、PHPなどには対応していないようです。

> GitHub Pages は、PHP、Ruby、Python などのサーバーサイド言語はサポートしていません。

また、禁止事項として

> GitHub Pages は、オンライン ビジネス、eコマース サイト、主に商取引の円滑化またはサービスとしての商用ソフトウェア (SaaS) の提供のどちらかを目的とする、その他の Web サイトを運営するための無料の Web ホスティング サービスとしての使用を意図したものではなく、またそのような使用を許可するものでもありません。 GitHub Pages サイトは、パスワードやクレジットカード番号といった機密情報のやりとりに使うべきではありません。
> 
> さらに、GitHub Pages の使用には、一獲千金を狙った計画、わいせつなコンテンツ、暴力的あるいは脅迫的なコンテンツや活動に関する制限など、GitHub 利用規約が適用されます。

また、Usage limits (使用状況の制限)として、以下の項目がありました。
> GitHub Pages サイトには、次の使用制限があります:
> 
> GitHub Pages ソース リポジトリには、1 GB の上限をお勧めします。 詳しくは、「GitHub での大きいファイルについて」をご覧ください
> 
> 公開されたGitHub Pagesのサイトは1GB以上であってはなりません。
> 
> GitHub Pages サイトには、月当たり 100 GB の ソフトな 帯域幅制限があります。
> 
> GitHub Pages サイトには、1 時間あたり 10 ビルドの "ソフト" 制限があります。** カスタム GitHub Actions ワークフローでサイトをビルドして公開する場合、この制限は適用されません
> 
> すべての GitHub Pages サイトに一貫したサービス品質を提供するために、レート制限が適用される場合があります。 これらのレート制限は、GitHub Pages の正当な使用を妨げるものではありません。 要求がレート制限をトリガーする場合は、説明を含む HTML 本文と共に、HTTP 状態コードを 429 伴う適切な応答を受け取ります。


長くなりましたが、使用言語にもある程度制約があり、サイトのデータサイズも1GB、商用での使用も難しいなど条件があるので、あくまで本記事のように個人的にちょっと触るぐらいがいいのかもしれません。
（もちろんコードもすべて公開してしまうことになるかと思いますので…）

とはいいつつ、自作Webサイト初心者の自分にとってはありがたいのでさっそくトライしていきたいと思います！

手順については以下のProgate様のサイトを参考にさせていただきました。

https://prog-8.com/docs/github-pages



### GitHubアカウント作成
もともと自分はアカウント作成していましたので、今回は割愛させていただきます。
作成方法は上記のProgate様の記事にあるので未作成の方は参考にしてください！（投げやり）

### リポジトリ作成

記事に記載の通り、
「アカウント名.github.io」で新規のリポジトリを作成します。

![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/335813/a710d21b-382e-5bd5-666b-4469f079306d.png)

そして、一番下の`Create repository`をクリックし作成。
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/335813/f3baf596-32c6-8c2e-71ab-23b88dd27e1a.png)

画面青枠内のREADMEをクリックし、いったん特に内容追記せずに`Commit New file`で作成しておきました。


### ファイルのアップロード

作ったリポジトリの画面で、`Add file`から`Create new file`を選択。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/335813/af65d294-01a3-660d-dc40-81c5fd2431f1.png)

index.htmlファイルを作成します。

htmlファイルは[ホームページのテンプレートセンター](https://template.homepage-tukurikata.com/)様のテンプレートを利用させていただきました。
（こんなのあるんですね、めちゃくちゃ便利です…）

![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/335813/357dd9be-41d5-9c4f-5aa4-f94de56f0d7e.png)

cssファイルも同様の手順で作成し、無事準備ができました…！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/335813/233938bd-53db-170b-b2dc-bf66603e0220.png)

今回は画像はないですが、画像が必要な場合は`Add file`にて随時アップロードしていけばいいのかと思います。

### Webページの公開

`Setting`をクリックし、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/335813/b6e36019-56c6-5ee1-b66c-783ba2545a19.png)

`Pages`をクリック。
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/335813/e67fc3cd-2e48-86b0-81ac-e784aa6f8a39.png)

問題なく公開されていれば画面赤枠内にURLが乗っています。

![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/335813/97a5d9bb-7a0e-f706-95b0-8ae16f831cd3.png)

URLにアクセスすると、無事Webページにアクセスできました…！（感動）

![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/335813/576da5f0-baf8-9ec8-ef80-e1979a64ee44.png)

ちなみに、もしURLが表示されていない場合、Branchを「main」にすることでURLが表示されるようになるとのことです。

### おまけ
普段触らない分GitHubに慣れるため、git bashでclone、index.htmlのファイル編集し、
add->commit->pushまでやってみました。。

マスキング雑で恐縮ですがこちらはpushした際のキャプチャです。
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/335813/b5519a16-0a50-67f5-7505-10e8aba78ead.png)


お、確かに反映できていそうです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/335813/fd5946f4-9dfa-fa7a-5261-4c14351583e7.png)

ページの修正も無事できていました。
（感覚的には少し反映に時間がかかる（1～2分ほど）印象です）

![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/335813/8ba94715-927b-58aa-45b2-e9e75a1c3bf4.png)

# 結果
GitHubPagesで無事Webページの公開ができました…！（ぱちぱち）


# 学び
- 通常のファイル同様GitHubでファイルアップロードすると、簡単にWebページの公開ができる
- ただし、制約もいくつかあるため、利用の用途は考えた方がよさそう

# まとめ
まずは自分自身でHTML書いていくべきではありますが、
公開の手段を一つ身につけたのは経験になりました！

こういったフロントエンド系勉強もちょこちょこしていきます…！