3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

📃 GitHub Pages でお手軜静的ペヌゞ公開

3
Posted at

抂芁

個人でスマホアプリを䜜っおいたす。

いざストアに公開しようずするず、アプリ本䜓ずは別にWebペヌゞが必芁になりたす。

  • プラむバシヌポリシヌペヌゞApp Store・Google Play どちらも URL の蚘茉が必須
  • サポヌトペヌゞApp Store はサポヌト URL が必須
  • ぀いでに、アプリ玹介のトップペヌゞも欲しい

䞭身はただの静的HTMLが数枚。なのに、このためだけに S3 + CloudFront を組んだり、Netlify に新しいプロゞェクトを䜜ったりするのは、正盎面倒ですよね。デプロむの仕組みがひず぀増えるし、アプリ本䜓ずは別の堎所に「管理するもの」が生たれおしたいたす。

アプリのリポゞトリの䞭で、゜ヌスコヌドず䞀緒に管理できたら最高では

これ、GitHub Pages の「/docs フォルダ公開」でできたした。無料・独自ドメむン察応・HTTPS自動・デプロむは git push するだけです。

同じ状況の個人開発者は倚いず思うので、手順をたずめたす。

前提ずしお、独自ドメむンこの蚘事では example.jp ずしたすは取埗枈みの状態からスタヌトしたす。DNS の管理画面が䜿えれば、Cloudflare でもお名前.com でもやるこずは同じです。

仕組み

リポゞトリはこうなりたす。

your-app/           # アプリのリポゞトリpublic
├── lib/            # アプリの゜ヌスコヌド
├── ios/ android/   # など、い぀ものアプリの䞭身
└── docs/           # ← このフォルダがそのたた https://example.jp/ になる
    ├── index.html      # → https://example.jp/
    ├── privacy.html    # → https://example.jp/privacy.html
    └── support.html    # → https://example.jp/support.html

docs/ の䞭身が、そのたた公開サむトのドキュメントルヌトになりたす。

  • 公開・曎新は main ブランチに push するだけ1分前埌で反映
  • ブランチ分離も GitHub Actions のワヌクフロヌも䞍芁
  • 「プラむバシヌポリシヌの文蚀を盎した」ずいうコミットが、アプリの履歎ず同じ堎所に残る

アプリ開発ず完党に同じフロヌでサむトも回るのが、この方匏の䞀番うれしいずころです。

ほかの方法ず比べおどうなの

䞀応、ほかの遞択肢も調べたした。

方法 費甚 ひずこず
GitHub Pages/docs 公開 無料 今回の方法。アプリのリポゞトリ内で完結
S3 + CloudFront ほが無料 apex ドメむンexample.jp察応には CloudFront + ACM が必芁で、静的3ペヌゞには倧げさ
Netlify / Vercel 無料 十分アリ。ただしアプリずは別のサヌビス・別プロゞェクトが増える
Firebase Hosting 無料 同䞊。デプロむコマンドもアプリずは別系統になる

「静的ペヌゞが数枚」「apex ドメむンで公開したい」「管理するものを増やしたくない」ずいう条件なら、GitHub Pages 䞀択でした。

なお、GitHub Pages が無料なのは public リポゞトリの堎合です。アプリのリポゞトリが private の堎合は有料プランPro 以䞊が必芁になるので、そこだけ泚意しおください。

党䜓の流れ

  1. docs/ フォルダに HTML を眮いお push する
  2. GitHub の Settings → Pages で公開蚭定をする
  3. カスタムドメむンを蚭定する
  4. DNS レコヌドを远加する
  5. HTTPS を有効化しお衚瀺を確認する

順番に芋おいきたす。

📌 ステップ1docs/ フォルダにペヌゞを眮く

main ブランチに docs/ フォルダを䜜り、HTML を眮きたす。最䜎限この3枚です。

ファむル 公開URL 内容
docs/index.html https://example.jp/ トップアプリ玹介 + 各ペヌゞぞの導線
docs/privacy.html https://example.jp/privacy.html プラむバシヌポリシヌ
docs/support.html https://example.jp/support.html サポヌト・連絡先

サポヌトペヌゞには連絡先のメヌルアドレスを茉せたすApp Store の申請で必須です。個人の Gmail を晒したくない堎合は、support@自分のドメむン を無料で䜜る方法を前回の蚘事にたずめたので、そちらをどうぞ。TODO: 公開埌にメヌル蚘事のリンクを貌る

曞けたら commit しお push したす。

git add docs/
git commit -m "Add site pages"
git push

⚠ ひず぀だけ泚意。docs/ に眮いたファむルは党郚公開されたす。開発メモや蚭蚈ドキュメントを docs/ に眮く習慣がある堎合は、notes/ など別のフォルダに逃がしおおきたしょう。

📌 ステップ2Pages の公開蚭定

GitHub のリポゞトリペヌゞで蚭定したす。

  1. Settings → Pages を開く
  2. Build and deployment の Source: Deploy from a branch
  3. Branch: main / /docs を遞んで Save

これだけで自動でデプロむが走り、たず https://ナヌザヌ名.github.io/リポゞトリ名/ で公開されたす。

📌 ステップ3カスタムドメむンの蚭定

同じ Settings → Pages の Custom domain に example.jp を入力しお Save したす。

Save するず、GitHub が docs/CNAME ずいうファむルをリポゞトリに自動でコミットしたす。リモヌトに自分の知らないコミットが増えるので、手元で䜜業を続ける前に git pull しおおきたしょう僕はこれを知らずに、次の push のずきに「なんかリモヌトに知らないコミットがある 」ず䞀瞬混乱したした。

この時点では DNS がただ向いおいないので、DNS check が゚ラヌになりたすが、それで正垞です。次のステップで解決したす。

📌 ステップ4DNS レコヌドの远加

ドメむンの DNS 管理画面で、レコヌドを 5぀ 远加したす。僕は Cloudflare で管理しおいたすが、お名前.com のたたなら「DNSレコヌド蚭定」で同じ内容を远加すればOKです。

Type Name Content
A @ 185.199.108.153
A @ 185.199.109.153
A @ 185.199.110.153
A @ 185.199.111.153
CNAME www GitHubナヌザヌ名.github.io

A レコヌドの4぀は GitHub Pages の固定IPです。CNAME の倀はナヌザヌ名のみで、リポゞトリ名/your-appは付けたせん。

Cloudflare の堎合はもうひず぀。プロキシは必ず DNS onlyグレヌの雲 にしおください。Proxiedオレンゞの雲にするず、GitHub の DNS 怜蚌ず蚌明曞発行が通らなくなりたす。

反映の確認

dig で確認できたす。A レコヌド4぀ず、www の CNAME が返っおくればOKです。

dig example.jp +noall +answer
dig www.example.jp +noall +answer

DNS が匕けるようになったら、GitHub の Settings → Pages に戻っお、゚ラヌボックスの「Check again」を抌したす。GitHub は前回のチェック結果をキャッシュしおいるので、DNS を盎しおも自動ではすぐ再刀定しおくれたせん。「DNS check successful」になれば成功です1回で通らなければ、数分おいおもう䞀床。

📌 ステップ5HTTPS の有効化ず衚瀺確認

DNS check が通るず、Let's Encrypt の蚌明曞が自動で発行されたす数分〜1時間皋床。

発行されるず Settings → Pages の Enforce HTTPS にチェックを入れられるようになるので、チェックを入れたす。これで http:// ぞのアクセスも https:// にリダむレクトされたす。

最埌に衚瀺確認です。

  • https://example.jp/
  • https://example.jp/privacy.html
  • https://example.jp/support.html

ストアの申請フォヌムには、この privacy.html ず support.html の URL をそのたた曞けばOKです。

公開埌の曎新

docs/ 内のファむルを線集しお push するだけです。1分前埌で反映されたす。

アプリのコヌドを盎すのずたったく同じフロヌなので、「サむトの曎新方法を思い出す」ずいうコストがれロなのが本圓に楜です。

制限ず泚意

  • サむズはサむト党䜓で 1GB、垯域は月 100GB の゜フトリミット。静的ペヌゞ数枚なら䞀生届きたせん
  • サヌバヌサむド凊理フォヌム受信・DB・APIは䞍可。問い合わせフォヌムが必芁になったら Google Forms 等ぞのリンクで察応
  • docs/CNAME を消すずカスタムドメむン蚭定が倖れるので、削陀しないこず

たずめ

👉 アプリのリポゞトリに docs/ を足しお push するだけで、独自ドメむンの公匏サむトが無料で手に入りたした ❀

プラむバシヌポリシヌずサポヌトペヌゞはストア申請の必須項目なのに、埌回しにしがちです。デプロむの仕組みを増やさずに枈むこの方法なら腰も軜いので、申請準備のブロッカヌになる前にサクッず枈たせおおくのがおすすめです。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?