CentOSにlodgeを導入する


## 経緯
研究室での知識共有に共通のDropBoxを使っていたが，やはりwordやtxtなどではコードが見にくいという意見が多数あったため，Qiitaリスペクトの[lodge](https://github.com/lodge/lodge)を導入した．

Qiitaチームを使いたいなと思ったけど，有料であるのがネックであったため非常に魅力を感じた．

[lodge](https://github.com/lodge/lodge)はRailsで書かれたものだが，自分自身Railsに関して無知であるため，自分同様Railsの知識がない人のためになればいいと思う．

## lodge
作者様の記事：[無料でイントラネット内にナレッジ/ノウハウの共有ができる「Lodge」](http://qiita.com/m-yamashita/items/d6f64db461acd54095f7)より引用
>イントラネットで Qiita:Team を使いたい！

>あらすじ

>社内で各チーム間で共有できるナレッジやノウハウなんかをきちんとまとめられるようにしたいなぁと思うと、Qiita:Team という素晴らしいサービスが最適解になるんじゃないかと思います。
>Qiita:Team - ドキュメントを軸としたコラボレーションサービス | Qiita
でも、残念なことにQiita:Teamはチーム内限定とはいえ、そのデータ自体はQiitaに預ける形になってしまい、社外秘な情報などを含んだナレッジの共有なんかは、セキュリティリスク的にちょっと怖くて使いたくても使えないなんて事がままある気がします。非常に惜しい！
で、そんな時思ったのです。 無いなら作ればいいじゃない！ と。
こんな素晴らしいサービスを使わず何を使えというのか！と。
GitHubに対するGitLabのようなものが、Qiitaでもあって良いじゃないか！と。

## Version
|パッケージ|バージョン|
|:---:|:---|
|CentOS|6.0(Final)|
|Ruby|2.1.2p95|
|Gem|2.2.2|
|Bundler|1.10.6|

Rubyのバージョンが2.2だとエラーがでるため，2.1にしておくのがポイント

## インストール
[lodge](https://github.com/lodge/lodge)のREADMEに書いてある通りにやればできる．
ただ，まずサーバにRubyすら入ってなかったので苦労したので，自分が参考にしたページをここにまとめる．

### 参考資料やコマンド

Ruby:[memo: Ruby ソースからインストール(CentOS 6.5/Ruby 2.1.2)](http://qiita.com/Katsumata_RYO/items/24b933e78f3676fef5e8)


Gem: `sudo yum -y install rubygems`

Bundler: [ツールを使いたいだけの人のための bundler 入門 (例: vagrant + veewee)
](http://qiita.com/znz/items/5471e5826fde29fa9a80)

### lodgeインストール
#### 1. clone
`git clone https://github.com/m-yamashita/lodge.git`

#### 2. Bundlerインストール
```
$ cd lodge
# 自分はプロキシがあるため以下のコマンド
$ gem install bundler -p http://proxy.yourproxy.jp:<port>
```

#### 3. database.ymlの作成
まずはコピーから．
`cp config/database.example.yml config/database.yml`
自分はmysqlを使っているため以下のようになった．

```ruby:database.yml
default: &default
#  # === sqlite3 ===
#  adapter: sqlite3
#  encoding: utf8
#  pool: 5

  # === mysql ===
  adapter: mysql2
  host: localhost
  username: your_mysql_user_name
  password: your_mysql_password
  encoding: utf8
  pool: 5
```

#### 4. bundle install
`bundle install --path vendor/bundle`
ここでめっちゃエラーでた．
エラーの原因は主に依存ライブラリがないことだった気がする．
やりながらメモを残していなかったので完璧には覚えていないんだけれども一応

##### mysqlに関するエラー
`.GemFile`の中身を変えることで解決

```ruby:GemFile
・
・
・
require 'yaml'
database_file = File.join(File.dirname(__FILE__), "config/database.yml")
if File.exist?(database_file)
  database_config = YAML::load(ERB.new(IO.read(database_file)).result)
  adapters = database_config.values.map {|c| c['adapter']}.compact.uniq
  if adapters.any?
    adapters.each do |adapter|
      case adapter
      when 'mysql2'
        #gem "mysql2", '~> 0.3'
        gem "mysql2", '~> 0.3.20'
      when /postgresql/
        gem "pg", '~> 0.17'
      when /sqlite3/
        gem "sqlite3", '~> 1.3'
      else
        warn("Unknown database adapter `#{adapter}` found in config/database.yml")
      end
    end
  else
    warn("No adapter found in config/database.yml, please configure it first")
  end
else
  warn("Please configure your config/database.yml first")
end
```

##### その他のエラー
おそらく依存関係のライブラリだろうからエラー文をコピペしてググれば大抵解決した．

#### 5. .envの作成
まずはコピー
`cp .env.example .env`

READMEにもあるが，とりあえず無知な自分のコメントも添えて掲載

```ruby:.env
### アプリケーションのドメイン
LODGE_DOMAIN      = example.com

# Cookie 検証用キーの設定
# productionモードで動かす場合に設定（`bundle exec rake secret` で生成する）
SECRET_KEY_BASE   = __some_random_string__

# 認証キーの設定
# productionモードで動かす場合に設定（`bundle exec rake secret` で生成する）
DEVISE_SECRET_KEY = __some_random_string__

### メールの設定
#### メールの設定がなっていないとユーザ登録できないからここ大事

# 外部 MTA (SMTPサーバ) を利用してメール送信する場合
DELIVERY_METHOD   = smtp

# DELIVERY_METHOD = smtp の場合のみ
# 以下の設定が有効です（それ以外は無視されます）
###自分は外部メールサーバを使っている
SMTP_ADDRESS      = メールサーバのアドレス
SMTP_PORT         = メールサーバの外部からアクセス可能なポート番号
#SMTP_USERNAME     = username
#SMTP_PASSWORD     = password
SMTP_AUTH_METHOD  = plain
SMTP_ENABLE_STARTTLS_AUTO = true

# テーマを設定します。
LODGE_THEME       = lodge
```

とりあえず自分はこれで動いた．

#### 6. DBまわり
DB作成：`bundle exec rake db:create RAILS_ENV=production`
テーブル作成：`bundle exec rake db:migrate RAILS_ENV=production`

## 起動
`bundle exec rails server thin -e production`

起動したあと，自分のブラウザから`http://<サーバ名 or サーバip>:3000`にアクセスしてログイン画面がでればOK

あとはガイダンスに従えばできる．

## 注意
最初の方でRubyのバージョンが2.2だとエラーが起きるといった．
2.2でもこの起動のところまではすんなりできると思うが，起動後，記事関係のものを閲覧するときにエラーが起きる．

ActionViewなんちゃら〜ってエラーがでたらまずはRubyのバージョンを確認して欲しい．

あと，新規登録の後，メールから認証画面に飛ぶと404エラーがでる．
そのときはurlのサーバ名の後ろに:3000を足してあげるとちゃんと動く．
そこ以外はそういうことをしなくても大丈夫なことは確認済み

## 感想
Railsを普段から使っている人ならきっと楽々インストールできるんだろうなーと思いながら書いた．
でも今回はRailsの知識がない人がエラーでつまづいたときの手助けになればと思って書いてみました．

よい知識共有ライフを！