akishin999の日記

調べた事などを書いて行きます。

Gistub をインストールしてみた

このところ「インストールしてみた」的な事ばかり書いていて、あまり深く突っ込んでない感じがなんだか情けないと自分でも思いますが、懲りずに今回もインストールしてみた系です。

今回は こちら の記事で紹介されていた、Rails 製のオープンソースの Gist クローン、Gistub をインストールしてみました。
試した環境は CentOS 6.3(x86_64) で以下が既にインストール済みとなっていました。

まずはアプリケーション配置ディレクトリと実行グループ・ユーザを作成します。

# groupadd appusers
# mkdir /var/apps
# chgrp -R appusers /var/apps
# chmod -R g+rwx /var/apps
# useradd -G appusers -c 'Gistub' -d /var/empty/gistub gistub

作成した gistub ユーザになり、Gistub を clone します。

# su - gistub
$ cd /var/apps
$ git clone git://github.com/seratch/gistub.git -b master
$ cd gistub/

データベースとして MySQL を使いたいので Gemfile を編集します。

$ vi Gemfile

mysql2 を追加。

gem 'mysql2'

Gemfile.lock が存在するので、以下のようにして gem をインストールします。

$ bundle install --path=vendor/bundle --without sqlite test server --no-deployment

database.yml を編集します。

$ vi config/database.yml

sqlite 用の設定になっているので、以下のように MySQL 用の設定に書き換えます。
ここでは db:create でデータベースの作成まで行っちゃいたかったので DB 作成権限を持つユーザを指定しました。
当然ですがパスワードは実際には適切な強度のものを使用してください。

production:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: gistub_production
  pool: 5
  username: root
  password: password
  host: 127.0.0.1

保存したら以下を実行してデータベース、テーブルを作成します。

$ RAILS_ENV=production bundle exec rake db:create
$ RAILS_ENV=production bundle exec rake db:migrate

assets:precompile も実行しておきます。

$ RAILS_ENV=production bundle exec rake assets:precompile

root ユーザになり、 Apache の DocumentRoot 上にシンボリックリンクを作成。

$ su -
# ln -s /var/apps/gistub/public /var/www/html/gistub


httpd.conf を編集します。

# vi /etc/httpd/conf/httpd.conf

gistub の設定を追加します。

<Directory "/var/www/html">
    RailsBaseURI /gistub
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

Apache を再起動します。

# service httpd restart

これでブラウザから http://yourserver/gistub で Gistub が表示されるはずです。

個人的にログイン認証に OmniAuth を使ってて Google アカウントのみというのは、社内で使うのにはイマイチかな、と思いました。
出来れば GitLab の DB そのまま見て認証できるとありがたいんですけどね。
せめて独自ユーザでの認証と切り替えられるようにしてあれば・・・。

その辺り必要なら改造してみるしかないのかな。