LodgeをFedoraにインストールしてみた


#概要
Qiita:Teamの機能をイントラネット上で構築するためのオープンソース「Lodge」を自宅のFedoraサーバーにインストールしてみました。Ruby on Railsのことはほとんど知らないので，やり方が正しいかよくわかりませんが，とりあえず動くようになりました。

#Lodgeとは
職場の都合で情報が外にでるのはまずいけど，Qiita:Teamが使いたい。じゃあイントラで使えるようにしようと開発されているのが，Lodgeです。開発者に感謝。コード作れる人すげー。

[Lodgeの説明](http://qiita.com/m-yamashita/items/d6f64db461acd54095f7)
[Lodge](https://github.com/m-yamashita/lodge)

#インストール
https://github.com/m-yamashita/lodge
にインストールの手順が書いてあるので，基本的にはその通りにやったらできました。途中幾つかハマったところがありました。

## 準備
必要なものとして
+ Ruby 1.9以上
+ Gem 2.2以上
+ MySQLもしくはsqlite3

と書いてあります。Rubyは1.9だったのですが，Gemが1.8だったので，アップデート。mySQLはすでに構築してあるので，mySQLを使います。

### Gemのアップデート
Gemのこともよくわからんので，とりあえず以下でアップデートしました。[参考にしたページ](http://blog.tstylestudio.com/2013/06/10/新しいgemのアップデート方法/)

```bash
$ sudo gem install rubygems-update
$ sudo update_rubygems
$ sudo gem update
```

update_rubygemsをつかって，アップデートするのが最近のGemらしいので，書いてあるとおりにアップデート。3つめのgem updateで途中何度も止まりましたが，止まるたびにやり直し。Fedoraのyumで入れたGemとかち合っている気がしますが，とりあえずやってしまいました。

## リポジトリのクローン
Githubのページからプロジェクトのリポジトリをクローン。ホームディレクトリの適当なとこにしました。

```bash
$ git clone https://github.com/m-yamashita/lodge.git
```

## database.ymlの編集
config/database.example.ymlをconfig/database.ymlとしてコピーして編集しました。

+ mysqlのところのコメントアウトを解除。

```bash
$ diff config/database.example.yml config/database.yml
14,19c14,19
< #  adapter: mysql2
< #  host: localhost
< #  username: root
< #  password: 
< #  encoding: utf8
< #  pool: 5
---
>   adapter: mysql2
>   host: localhost
>   username: root
>   password: （mySQLのパスワード）
>   encoding: utf8
>   pool: 5
34d33
<   #database: lodge_production
```

## bundle install実行
bundle installを実行します。

```bash
$ bundle install
```

###いらないかもしれない操作
bundle installした後に

+ Gemfileのgem 'therubyracer',  platforms: :rubyのところのコメントアウトを解除して，再度bundle install実行。
+ gem install eventmachineを実行

最初Gemのバージョンが古い状態でこの作業したので，この追加の操作は必要ないかも。

## データベース作成
データベース作成のため，

```bash
$ rake db:create RAILS_ENV=production
$ rake db:migrate RAILS_ENV=production
```

を実行。MySQLで,lodge_productionというデータベースができているのを確認。

[公式ページ](https://github.com/m-yamashita/lodge)にはRAILS_ENV=productionの部分が書いてないので，はまりました。Ruby on Railsに詳しければ大丈夫なんでしょうけど。

## production.rbの編集
config/environments/production.example.rbをconfig/environments/production.rbとしてコピーして，production.rbの最後をメール送信ができるように設定しました。ポート3000はGitlabが使っているので，ポートを3100にしました。

## secret_keyの設定
productionモードではsecrete_keyが必要らしい（意味はわかってないです）ので，以下を実行。bash使ってます。

```bash
echo "export SECRET_KEY_BASE=\"`rake secret`\"" >> ~/.bashrc; source ~/.bashrc
```

#起動
以上で設定が終わったので起動

```bash
$ rails server --port=3100 -e production
```

ポート3100番で起動してます。あとにこんなメッセージ。

```bash
Warning: Running `gem pristine --all` to regenerate your installed gemspecs (and deleting then reinstalling your bundle if you use bundle --path) will improve the startup performance of Spring.
=> Booting Thin
=> Rails 4.1.0 application starting in production on http://0.0.0.0:3100
=> Run `rails server -h` for more startup options
=> Notice: server is listening on all interfaces (0.0.0.0). Consider using 127.0.0.1 (--binding option)
=> Ctrl-C to shutdown server
Thin web server (v1.6.2 codename Doc Brown)
Maximum connections set to 1024
Listening on 0.0.0.0:3100, CTRL+C to stop
```

gem pristine --allをやれといわれてますが，やっても途中で終わるので無視してます。

次にブラウザでhttp//(サーバーのアドレス):3100でアクセスします。最初はユーザーの登録が必要。メール送信して確認します。最初，メール送信の設定してなくてハマりました。

無事できました。

![Lodge0.jpg](https://qiita-image-store.s3.amazonaws.com/0/43609/a3bf1719-9a73-68d9-d2fa-83bf228ff36b.jpeg "ログイン画面")
![Lodge.jpg](https://qiita-image-store.s3.amazonaws.com/0/43609/7f98d38a-3bd0-953b-ee44-88a8f876f0d8.jpeg "ホーム画面")


# 最後に
+ Ruby on Railsを全く知らないで，インストールしたので時間かかりましたが，知ってる人ならインストールは公式にあるように簡単です。
+ 現時点で機能は実用できるレベルだと思います。ストックもできるし，タグもつくし，人気記事も出るし。便利。
+ 公式ページに書いてないですが，画像をアップデートできなさそう。以前のQiitaと似たような状態です。使おうとしてるのは画像つきのレポートなんかをここでまとめたいなと思っているので，Lodge上で画像もアップデートできるとうれしいです。