経緯
研究室での知識共有に共通のDropBoxを使っていたが,やはりwordやtxtなどではコードが見にくいという意見が多数あったため,Qiitaリスペクトのlodgeを導入した.
Qiitaチームを使いたいなと思ったけど,有料であるのがネックであったため非常に魅力を感じた.
lodgeはRailsで書かれたものだが,自分自身Railsに関して無知であるため,自分同様Railsの知識がない人のためになればいいと思う.
lodge
作者様の記事:無料でイントラネット内にナレッジ/ノウハウの共有ができる「Lodge」より引用
イントラネットで 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のREADMEに書いてある通りにやればできる.
ただ,まずサーバにRubyすら入ってなかったので苦労したので,自分が参考にしたページをここにまとめる.
参考資料やコマンド
Ruby:memo: Ruby ソースからインストール(CentOS 6.5/Ruby 2.1.2)
Gem: sudo yum -y install rubygems
Bundler: ツールを使いたいだけの人のための bundler 入門 (例: vagrant + veewee)
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を使っているため以下のようになった.
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
の中身を変えることで解決
・
・
・
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にもあるが,とりあえず無知な自分のコメントも添えて掲載
### アプリケーションのドメイン
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の知識がない人がエラーでつまづいたときの手助けになればと思って書いてみました.
よい知識共有ライフを!