GitLab ページ

GitLab Pagesを使えば、GitLabのリポジトリから静的ウェブサイトを直接公開することができます。

  • 個人またはビジネスのウェブサイトにご利用ください。
  • 任意の静的サイトジェネレータ(SSG)またはプレーンHTMLを使用します。
  • プロジェクト、グループ、ユーザーアカウントのウェブサイトを作成します。
  • 自分のGitLabインスタンスやGitLab.comでサイトを無料でホスティング。
  • カスタムドメインとTLS証明書を接続します。
  • コンテンツに任意のライセンスを割り当てます。
PagesがサポートするSSGの例

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、ベースURLGitLab 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 を使い始めるためのワークフローを示しています。

GitLab Pages の新規プロジェクト

Pages サイトへのアクセス

GitLab Pagesデフォルトドメイン(.gitlab.io)を使用している場合、ウェブサイトは自動的にセキュリティ保護され、HTTPSで利用できます。独自のカスタムドメインを使用している場合は、オプションでSSL/TLS証明書でセキュアにすることができます。

GitLab.comを使用している場合、あなたのウェブサイトはインターネットに公開されています。ウェブサイトへのアクセスを制限するには、GitLab Pages Access Controlを有効にしてください。

セルフマネージドインスタンスを使用している場合、あなたのウェブサイトは、あなたのシステム管理者が選択したPages設定に従って、あなた自身のサーバーで公開されます。

Pagesの例

これらの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機能を有効にします。