デプロイ方法

Jekyllを使用して構築されたサイトは、生成される出力の静的コンテンツを様々な方法でデプロイすることができます。最も一般的なデプロイの方法をいくつか以下に説明します。

Web ホスティングプロバイダ (FTP)

従来のWebホスティングプロバイダについては、あなたは、FTP経由でそれらのサーバーにファイルをアップロードできます。 FTPを使用してWebホストにJekyllで作られたサイトをアップロードするには、単に jekyll コマンドを実行し、生成された _site フォルダをホスティングアカウントのルートフォルダにコピーします。 これは、多くのホスティングプロバイダーの httpdocspublich_html フォルダに相当します。

Glynn を利用したFTP

Jekyllを利用したサイトの静的ファイルを簡単に生成し、それをあなたのホストにFTP送信する Glynn というプロジェクトがあります。

自分で管理している web サーバの場合

デプロイ対象のWebサーバへ直接アクセスする方法を持っている場合は、 デプロイの方法は基本的に同じです(scp、あるいはファイルシステムへ直接アクセスするといった、 他のファイル転送方法がある場合は除く)。生成された _siteフォルダの内容が、 Webサーバーの適切なWebルートディレクトリに置かれているか確認するのを忘れないでください。

自動化された方法

Jekyllサイトのデプロイを簡単に自動化する方法はいくつもあります。あなたが一覧にない方法を知っているなら、誰もが恩恵を受けることができるように、貢献してくれるととても嬉しいです!

Git post-update フック

あなたが自身のJekyllサイトをGit に保存している場合(あなたはバージョン管理をしていますよね?)、 あなたのGitリポジトリに post-update フックを設定することでデプロイ手順を自動化するのは簡単です。 やり方はこちらです

Git post-receive フック

Gitで変更をpushする度にリモートサーバにデプロイするためには、デプロイ権限を持ったアカウントを作成し、公開鍵をauthorized_keys ファイルに追加します。次のように所定の場所に post-receive フックを設定することでできます:

laptop$ ssh deployer@example.com
server$ mkdir myrepo.git
server$ cd myrepo.git
server$ git --bare init
server$ cp hooks/post-receive.sample hooks/post-receive
server$ mkdir /var/www/myrepo

次に、hooks/post-receive に次の行を追加して、そしてJekyllがサーバにインストールされていることを 確認してください:

GIT_REPO=$HOME/myrepo.git
TMP_GIT_CLONE=$HOME/tmp/myrepo
PUBLIC_WWW=/var/www/myrepo

git clone $GIT_REPO $TMP_GIT_CLONE
jekyll build -s $TMP_GIT_CLONE -d $PUBLIC_WWW
rm -Rf $TMP_GIT_CLONE
exit

最後に、このフックを使用してデプロイできる必要のあるユーザのラップトップから次のコマンドを実行してください:

laptops$ git remote add deploy deployer@example.com:~/myrepo.git

ここまでくれば、デプロイはnginx や Apache が /var/www/myrepo を見るくらいに簡単です。 そして次のコマンドを実行します:

laptops$ git push deploy master

Jekyll-hook

あなたは jekyll-hook を使うこともできます。 jekyll-hook は GitHub からのウェブフックの発動を監視し、Jekyll でウェブサイトを 作成してどこかの場所に発行するサーバです。 あなた独自の GitHub Pages スタイルのウェブサーバを運用するために使ってください。

ファイアウォール越しにサイトを提供する場合や、HTTP ベーシック認証のような 追加的なサーバレベル機能が必要な場合、あるいは CDN や S3 のようなファイルホストで 直接サイトをホストしたい場合には、この方法が便利です。

セットアップの手順は jekyll-hook リポジトリ にすべてドキュメント化されています。

Rake

Jekyllサイトをデプロイする別の方法はRakeHighLineNet::SSH を利用することです。 複数のブランチをRakeで扱い、Jekyllをデプロイするより複雑な例はGit Ready に記載されています。

rsync

一度、 _site ディレクトリを生成したら、あなたは このデプロイスクリプト のような tasks/deploy シェルスクリプトを用いて簡単にrsyncできます。 当然ながら、あなたのサイトの詳細に合わせて値を変更する必要はあります。 このスクリプトに対応したTextMateのコマンド もあり、 Textmate上からこのスクリプトを実行するのに役立ちます。

Rack-Jekyll

Rack-Jekyllは、Amazon EC2、Slicehost、Herokuの、そして、任意のRackサーバ上などでサイトをデプロイするための簡単な方法です。 それらは shotgunrackupmongrelunicornその他 にて実行することができます。

Rack-Jekyllを用いたHerokuへのデプロイの仕方についてはこの記事 を読んでください。

Rails用のJekyll-Admin

もし、あなたが既存のRailsアプリの内部でJekyllを利用したいなら、Jekyll-Adminにある挿入用コードを使うことで可能です。 詳細はJekyll-AdminのREADMEを参照してください。

Amazon S3

あなたがAmazon S3の中であなたのサイトをホストしたい場合は、 s3_website アプリケーションで実現することができます。 Amazon S3にあなたのサイトをpushし、任意のWebサーバのように提供できます。ほぼ無制限のトラフィックに動的にスケーリングします。 この手段はあなたが使っただけの代金を払うだけで容量の少ないブログが利用できる最も安いホスティング・オプションであるという利点があります。

OpenShift

あなたのサイトをOpenShift gearにデプロイしたい場合は、そのためのカートリッジがあります。

ProTip™: 面倒ゼロのJekyllホスティングのためにGitHub Pagesを使う

GitHub Pages は裏側でJekyllが動いています。そして、あなたが面倒ゼロでコストがゼロなソリューションをさがしているなら、GitHub Pages は 無料でJekyll利用のウェブサイトをホストする優れた方法です。