LoginSignup
21
22

More than 5 years have passed since last update.

RubyKaigi2014の知見。geminabox gem で Private な Gem Server を構築 #rubykaigi

Last updated at Posted at 2014-09-25

Ruby | RubyKaigi2014の知見。geminabox gem で Private な Gem Server を構築 #rubykaigi

概要

geminabox は RubyKaigi2014の初日(2014/09/18)に Takumi Miura さんが
「"Gem of this Week" - building culture and making gem」
という講演の中で紹介していた gem です。

geminabox は private な gem Server を作成するための gem です。
RubyGems に公開するようなたぐいではない gem とかありますよね。
業務特有のビジネスロジックを含み、公開出来ないようなものなど。

前提

動作確認環境は以下。

OS: Ubuntu1404.LTS
Ruby: 1.9.3系

GitHub の geminabox のREADMEの説明によると Ruby 2系には対応していない模様。
ただ、Travis CIの結果を見ると 2.0 でテストが成功しているので現在は問題ないのだろうか?
README.md を信じて 1.9 系でインストールしました。
(2014/09/25現在)

インストール

Web Server は unicorn である必要はありません。

$ gem i unicorn --no-ri --no-doc
$ gem i geminabox --no-ri --no-doc

設定手順

  • config.ru を作成
# 任意の名前のディレクトリを作成
$ mkdir rubygems
$ sudo mkdir /var/geminabox-data

$ cat <<EOS > config.ru
require "rubygems"
require "geminabox"

Geminabox.data = "/var/geminabox-data"
run Geminabox::Server
EOS

※ Geminabox.data のフォルダは書き込み権限を設定しておくこと

  • 起動スクリプトを Rakefile で作成
task :start do
  system("unicorn -p 2000 -D")
end

task :stop do
  pids = `ps -ef | grep 'unicorn master' | awk -F ' ' '{print $2}'`
  pid = pids.each_line.map(&:chomp).first
  if $?.exitstatus == 0
    system("kill -QUIT #{pid}")
  else
    puts "Not Running Unicorn Process"
  end
end

task :restart => [:stop, :start] do
end
  • ブラウザから確認
$ rake start

geminabox_top.png

  • 停止
$ rake stop

参照

21
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
22