Configurando um servidor privado de ruby ​​gems

Eu sempre pensei no passado que seria bom empacotar algo como uma gema, mas não pensei em expor o código interno por meio de gemas de rubi. No entanto, é super simples configurar um servidor ruby ​​gems interno e usá-lo com seu projeto Rails (ou qualquer bundler).

Primeiro, instale a gem Geminabox em seu computador local e no servidor que você deseja que seja o servidor gem privado. Observe que as instruções de instalação do servidor são curtas, mas exigem a criação de um aplicativo Rack-Sinatra simples. Em seu computador local, basta instalar a gem.

Inicie o servidor via rack:

$> rackup

Em seu computador local, configure o gem para apontar para seu servidor privado, um endereço IP se estiver bem:

$> gem inabox -c
$
> http://127.0.0.1:9292

Neste ponto, você deve conseguir navegar pela lista de joias em seu servidor privado (certifique-se de que está executando uma versão recente do Sinatra. Meu servidor estava executando 1.0 e eu tive 500 erros em meu aplicativo Sinatra. Atualizando para 1.3 corrigiu o problema). Você também pode empurrar uma joia neste momento.

$> cd my_gem
$
> bundle exec rake build
$
> gem inabox pkg/my_gem-0.1.gem

Em seu Gemfile que você deseja incluir a gema, basta adicionar o servidor gem privado como uma fonte:

$> cat Gemfile
$
> source "http://127.0.0.1:9292"
$
> gem "my_gem"

Corra bundlee está tudo pronto!

NOTA Se desejar, você pode facilmente configurar isto via passgener como qualquer outro aplicativo baseado em Rack normal e então remover a configuração de porta de seu Gemfile e reconfigurar sua gem local para usar a URL do servidor gem privado atualizado. É sobre isso!