Como executar o Gollum usando mod_rails e Apache em um ambiente de hospedagem compartilhada (por exemplo, Dreamhost)?

10

Gollum é o novo mecanismo wiki do GitHub escrito em Ruby. Implantado localmente, ele usa uma instância do Sinatra para fornecer uma interface da web.

É possível executá-lo em um ambiente de hospedagem compartilhada, como o Dreamhost, usando Apache e mod_rails (Phusion Passenger)?

Kenners
fonte

Respostas:

5

Crie o arquivo "config.ru", adicione-o:

require "gollum/frontend/app"

Precious::App.set(:gollum_path, File.dirname(__FILE__))
Precious::App.set(:wiki_options, {})
run Precious::App
August Lilleaas
fonte
7

Há um excelente guia sobre:

https://github.com/tecnh/gollum/wiki/Gollum-and-Passenger

Os pontos principais são:

  • adicione um config.ru ao lib / gollum / frontend
  • Aponte a raiz do seu documento para lib / gollum / frontend / public
  • Use o seguinte config.ru como base, defina o caminho do wiki de acordo (eu tive que adicionar a parte de configuração do bundler)
#!/usr/bin/ruby
require 'rubygems'
require 'bundler/setup'
require 'gollum/frontend/app'

system("which git") or raise "Looks like I can't find the git CLI in your path.\nYour path is: #{ENV['PATH']}"

gollum_path = '/path/to/wiki' # CHANGE THIS TO POINT TO YOUR OWN WIKI REPO

disable :run

configure :development, :staging, :production do
 set :raise_errors, true
 set :show_exceptions, true
 set :dump_errors, true
 set :clean_trace, true
end

$path = gollum_path
Precious::App.set(:gollum_path, gollum_path)
Precious::App.set(:wiki_options, {})

run Precious::App
reto
fonte
1

A resposta de August Lilleaas está correta, no entanto, eu precisava usar uma versão mais antiga do gollum, então configurei com o Bundler:

Gemfile:

source 'http://rubygems.org'

gem 'rdiscount'
gem 'gollum', '1.3.0'

config.ru:

require 'rubygems'
require 'bundler'

Bundler.require

require "gollum/frontend/app"

Precious::App.set(:gollum_path, File.expand_path(File.dirname(__FILE__)))
Precious::App.set(:wiki_options, {})
run Precious::App

Lembre-se também de criar os diretórios publice tmp, como o Passenger exige.

No entanto, encontrei outro problema. Você precisa se certificar de que gitestá no caminho do usuário do servidor da web. Para mim, esse não foi o caso e, infelizmente, não há mensagem de erro, você sempre acaba na página para criar uma nova página.

fabi
fonte