Vagrant + GitHub(Pages) + Octopress でblogを作成（その１）

# GitHub PagesとOctopress
blogを作るトレンドは、[WordPress](http://ja.wordpress.org/) だと思っていたら、最近は [GitHub Pages](https://pages.github.com/) + [Octopress](http://octopress.org/docs/) で作るのがいいというので試してみました。というか本当は WordPress で作るタイミング逃していまさら？って感じだったのでこっちにしてみただけ。そしていざ自分がやるといつものごとく微妙にハマったので自分メモを書いておきますｗ。
![05.png](https://qiita-image-store.s3.amazonaws.com/0/44540/8035c547-3ac3-8cc9-d609-fa7ca1aa0258.png)

### 始めに
最初からいきなりなのですが GitHub Pages + Octopress だと source ブランチの扱いが難しくコンフリクトが発生したり色々と面倒な状態になるとのこと（実際に経験しました）。なので「[Octopress リポジトリは単独で管理する、しかも非公開が好ましいと言うのが現時点での結論](http://tokkonopapa.github.io/blog/2011/12/30/octopress-on-github-and-bitbucket/)」と同じように「記事のデプロイ先は Github、原稿の元ネタは [Bitbucket](https://bitbucket.org/)」と構築するのがgoodです。

#### Gitホスティングサービス Bitbucket て？
無料でプライベートレポジトリを持てる（制約あり）[Gitホスティングサービス](http://www.find-job.net/startup/5-git-hosting)です。5人以下の小規模な人数で開発するときは具合がいいのでよく使われているそうみたいです。

### やっと本題ｗ
とりあえず、GitHub Pages + Octopress の構成だと面倒だということは判っても実際に挙動を試してみて挫けるのもまた勉強。そんなわけで自分のWindows環境は、とにかく汚したくないのでいつものVagrant経由で環境を構築しましょう。ざっくり構成としては下記のような感じ。

```
Windows → Vagrant → CentOS → Octopress → jekyll → Github Pages
```

ちなみに [Octopress](http://octopress.org/) は [jekyll](http://jekyllrb.com/) をベースにしたRubyの静的サイトジェネレータです。

### 事前準備
1. 仮想環境 Vagrant を[作成している](http://qiita.com/murachi1208/items/5b429cb7cedf76164e67)こと（できれば複数）かつ、github.com にsshで接続できる環境設定済みであること。
2. GitHubで「username.github.io」リポジトリを作成済みであること。

### Ruby, Octopress Setup
[Octopress Start](http://octopress.org/docs/setup/rvm/) をみると「Install Ruby 1.9.3 or greater using either rbenv or RVM.」と指示されているので rvm にて ruby をインストールします。ruby 2.1.2p(2014/5/31現在) がインスコされるけどHTMLのレンダリング動作に問題ないのでこのまま使います。

```
$ sudo su
# curl -L https://get.rvm.io | bash -s stable --ruby
# source /usr/local/rvm/scripts/rvm
# gem install bundler
# exit
$ /bin/bash --login
$ git clone git://github.com/imathis/octopress.git octopress
$ cd octopress
$ bundle install
$ rake install
```

ちょいと時間かかります（約10分位）

### ドキドキの github pages
その前にお約束のあれ・・・やっておきましょう。githubにpushするときに色々と注意される対応ですｗ（git コマンド入ってなければ ```sudo yum -y install git``` でインストールすべし）

```
$ git config --global user.name "自分のユーザー名"
$ git config --global user.email "自分のメールアドレス"
```

さて自分のレポジトリと同期ってみましょう～

```
$ cd octopress
$ rake setup_github_pages
Enter the read/write url for your repository
(For example, 'git@github.com:your_username/your_username.github.io.git)
           or 'https://github.com/your_username/your_username.github.io')
Repository url: 
```

Repository url: には ```git@github.com:your_username/your_username.github.io.git``` を指定すること。※your_username は、自分のアカウント名

```
$ rake install
$ rake generate
```

### デプロイ
とりあえず今までの手順で作成したローカルの Octopress が jekyll でごにょごにょされ Github と同期されるのを実感（見てみたいよね？）してみる。

```
$ rake deploy 
```

表示される問い合わせに答えていけばok。errorやfatalが表示されてないのであれば、自分が作成したレポジトリに Octopress 関連のファイルがマージされています。あとはGithubのサブドメインで参照（```http://your_username.github.io```）できるようになるまで暫く待つ（※dnsの反映は15～30分位です）。

私のサイトは、```http://murachi1208.github.io/``` で参照できます。
![01.png](https://qiita-image-store.s3.amazonaws.com/0/44540/cf3e9004-1e20-1d56-5060-600cbe847b22.png)

### その２に続く
とりあえず Vagrant で作成した VM の中にある「Octopress」とGithubが連動されたことを確認できて感動したので。[次は](http://qiita.com/murachi1208/items/cdbde599b764267b0b3b) **複数人** で１つのBlogを編集できる環境の構築をしてみましょう。