GitLab ページ
GitLab Pagesを使えば、GitLabのリポジトリから静的ウェブサイトを直接公開することができます。
- 個人またはビジネスのウェブサイトにご利用ください。
- 任意の静的サイトジェネレータ(SSG)またはプレーンHTMLを使用します。
- プロジェクト、グループ、ユーザーアカウントのウェブサイトを作成します。
- 自分のGitLabインスタンスやGitLab.comでサイトを無料でホスティング。
- カスタムドメインとTLS証明書を接続します。
- コンテンツに任意のライセンスを割り当てます。
Pagesを使ってウェブサイトを公開するには、Gatsby, Jekyll, Hugo, Middleman, Harp, Hexo, Brunchのような静的サイトジェネレータを使うことができます。また、プレーンなHTML、CSS、JavaScriptで直接書かれたウェブサイトも公開できます。
Pagesは、例えば.php
や.asp
が必要とするような動的なサーバーサイド処理をサポートしていません。詳しくは、静的なウェブサイトと動的なウェブサイトを参照してください。
利用を開始
GitLab Pagesウェブサイトを作成するには:
ドキュメント | 説明 |
---|---|
GitLab UIを使ってシンプルな.gitlab-ci.yml | 既存のプロジェクトに Pages サイトを追加します。UI を使ってシンプルな.gitlab-ci.yml を設定します。 |
.gitlab-ci.yml ファイルをゼロから作成します。 | 既存のプロジェクトにPagesサイトを追加します。独自のCIファイルを作成し、設定する方法を学びます。 |
.gitlab-ci.yml テンプレートを使用します。 | 既存のプロジェクトにPagesサイトを追加します。入力済みのCIテンプレートファイルを使用します。 |
サンプルプロジェクトをフォークします。 | サンプルプロジェクトをフォークして、Pagesが設定済みの新規プロジェクトを作成します。 |
プロジェクトテンプレートの使用 | テンプレートを使用して、Pagesが設定済みの新しいプロジェクトを作成します。 |
GitLab Pagesウェブサイトを更新するには:
ドキュメント | 説明 |
---|---|
GitLab Pagesのドメイン名、URL、ベースURL | GitLab Pagesのデフォルトドメインについて学びましょう。 |
GitLab Pagesを探る | 要件、技術的側面、GitLab CI/CD設定オプション、アクセスコントロール、カスタム404ページ、制限、FAQ。 |
カスタムドメインとSSL/TLS証明書 | カスタムドメインとサブドメイン、DNSレコード、SSL/TLS証明書。 |
Let’s Encryptインテグレーション | Let’s Encrypt証明書はGitLabによって自動的に取得され、更新されます。 |
リダイレクト | あるページを別のページに転送するためにHTTPリダイレクトを設定します。 |
詳細については
ドキュメント | 説明 |
---|---|
静的なウェブサイトと動的なウェブサイト | 静的サイトと動的サイトの概要 |
最新の静的サイトジェネレータ | SSGの概要。 |
GitLab PagesでSSGサイトを構築 | GitLab PagesでSSGを使いましょう。 |
どのように動作するか
GitLab Pagesを使うには、ウェブサイトのファイルをアップロードするプロジェクトをGitLabに作成する必要があります。これらのプロジェクトは公開、内部、非公開のいずれかにすることができます。
GitLab は常に、リポジトリ内のpublic
という特定のフォルダからウェブサイトをデプロイします。GitLabで新しいプロジェクトを作成すると、リポジトリが自動的に利用可能になります。
サイトをデプロイするために、GitLabはGitLab CI/CDと呼ばれる組み込みツールを使ってサイトをビルドし、GitLab Pagesサーバーに公開します。GitLab CI/CD がこのタスクを達成するために実行する一連のスクリプトは、.gitlab-ci.yml
というファイルから作成されます。設定ファイルのpages
という特定のjob
は、GitLab Pages ウェブサイトをデプロイしていることを GitLab に認識させます。
GitLab Pagesのウェブサイトには、GitLabのデフォルトドメインである*.gitlab.io
、または独自のドメイン(example.com
)を使うことができます。その場合、Pagesで設定するにはドメインのレジストラ(またはコントロールパネル)の管理者である必要があります。
以下の図は、Pages を使い始めるためのワークフローを示しています。
Pages サイトへのアクセス
GitLab Pagesデフォルトドメイン(.gitlab.io
)を使用している場合、ウェブサイトは自動的にセキュリティ保護され、HTTPSで利用できます。独自のカスタムドメインを使用している場合は、オプションでSSL/TLS証明書でセキュアにすることができます。
GitLab.comを使用している場合、あなたのウェブサイトはインターネットに公開されています。ウェブサイトへのアクセスを制限するには、GitLab Pages Access Controlを有効にしてください。
セルフマネージドインスタンスを使用している場合、あなたのウェブサイトは、あなたのシステム管理者が選択したPages設定に従って、あなた自身のサーバーで公開されます。
Pagesの例
これらのGitLab Pagesウェブサイトの例では、あなた自身のニーズに合わせて使える高度なテクニックを学ぶことができます:
- iOSからGitLab Pagesブログへの投稿。
- GitLab CI: ジョブを順次実行、並列実行、カスタムパイプラインの構築。
- GitLab CI: デプロイと環境。
- Nanoc、GitLab CI、GitLab Pagesを使った新しいGitLabドキュメントサイトの構築。
- GitLab Pagesを使ったコードカバレッジレポートの公開。
セルフマネージドインスタンス用のGitLab Pagesの管理
GitLab のセルフマネージドインスタンスを実行している場合は、管理手順に従ってPages を設定してください。
GitLab Pages管理の始め方についてのビデオチュートリアルをご覧ください。
KubernetesインスタンスでGitLab Pagesを設定します。
Helm Chart (Kubernetes) 経由でデプロイされたインスタンスに GitLab Pages を設定するには、以下のどちらかを使用します:
GitLab Pagesのセキュリティ
コンテナを含む名前空間.
ユーザー名がexample
の場合、あなたの GitLab Pages ウェブサイトはexample.gitlab.io
にあります。GitLab ではユーザー名に.
を含めることができるので、bar.example
というユーザーがbar.example.gitlab.io
という GitLab Pages ウェブサイトを作成し、example.gitlab.io
ウェブサイトのサブドメインとすることができます。JavaScriptを使ってウェブサイトにクッキーを設定する場合は注意してください。JavaScriptで手動でクッキーを設定する安全な方法は、domain
をまったく指定しないことです:
// Safe: This cookie is only visible to example.gitlab.io
document.cookie = "key=value";
// Unsafe: This cookie is visible to example.gitlab.io and its subdomains,
// regardless of the presence of the leading dot.
document.cookie = "key=value;domain=.example.gitlab.io";
document.cookie = "key=value;domain=example.gitlab.io";
このイシューは、カスタムドメインを持つユーザーや、JavaScriptで手動でクッキーを設定しないユーザーには影響しません。
共有クッキー
デフォルトでは、グループ内のすべてのプロジェクトは同じドメイン、例えばgroup.gitlab.io
を共有します。これは、グループ内のすべてのプロジェクトでクッキーも共有されることを意味します。
各プロジェクトが異なるCookieを使用するようにするには、プロジェクトのPagesunique domains機能を有効にします。