概要
Qiita:Teamの機能をイントラネット上で構築するためのオープンソース「Lodge」を自宅のFedoraサーバーにインストールしてみました。Ruby on Railsのことはほとんど知らないので,やり方が正しいかよくわかりませんが,とりあえず動くようになりました。
Lodgeとは
職場の都合で情報が外にでるのはまずいけど,Qiita:Teamが使いたい。じゃあイントラで使えるようにしようと開発されているのが,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のこともよくわからんので,とりあえず以下でアップデートしました。参考にしたページ
$ sudo gem install rubygems-update
$ sudo update_rubygems
$ sudo gem update
update_rubygemsをつかって,アップデートするのが最近のGemらしいので,書いてあるとおりにアップデート。3つめのgem updateで途中何度も止まりましたが,止まるたびにやり直し。Fedoraのyumで入れたGemとかち合っている気がしますが,とりあえずやってしまいました。
リポジトリのクローン
Githubのページからプロジェクトのリポジトリをクローン。ホームディレクトリの適当なとこにしました。
$ git clone https://github.com/m-yamashita/lodge.git
database.ymlの編集
config/database.example.ymlをconfig/database.ymlとしてコピーして編集しました。
- mysqlのところのコメントアウトを解除。
$ 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を実行します。
$ bundle install
いらないかもしれない操作
bundle installした後に
- Gemfileのgem 'therubyracer', platforms: :rubyのところのコメントアウトを解除して,再度bundle install実行。
- gem install eventmachineを実行
最初Gemのバージョンが古い状態でこの作業したので,この追加の操作は必要ないかも。
データベース作成
データベース作成のため,
$ rake db:create RAILS_ENV=production
$ rake db:migrate RAILS_ENV=production
を実行。MySQLで,lodge_productionというデータベースができているのを確認。
公式ページには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使ってます。
echo "export SECRET_KEY_BASE=\"`rake secret`\"" >> ~/.bashrc; source ~/.bashrc
起動
以上で設定が終わったので起動
$ rails server --port=3100 -e production
ポート3100番で起動してます。あとにこんなメッセージ。
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でアクセスします。最初はユーザーの登録が必要。メール送信して確認します。最初,メール送信の設定してなくてハマりました。
無事できました。
最後に
- Ruby on Railsを全く知らないで,インストールしたので時間かかりましたが,知ってる人ならインストールは公式にあるように簡単です。
- 現時点で機能は実用できるレベルだと思います。ストックもできるし,タグもつくし,人気記事も出るし。便利。
- 公式ページに書いてないですが,画像をアップデートできなさそう。以前のQiitaと似たような状態です。使おうとしてるのは画像つきのレポートなんかをここでまとめたいなと思っているので,Lodge上で画像もアップデートできるとうれしいです。