¿Cómo ejecutar Gollum usando mod_rails y Apache en un entorno de alojamiento compartido (por ejemplo, Dreamhost)?

10

Gollum es el nuevo motor wiki de GitHub escrito en Ruby. Desplegado localmente, utiliza una instancia de Sinatra para proporcionar una interfaz web.

¿Es posible ejecutarlo en un entorno de alojamiento compartido como Dreamhost usando Apache y mod_rails (Phusion Passenger)?

Kenners
fuente

Respuestas:

5

Cree el archivo "config.ru", agregue esto:

require "gollum/frontend/app"

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

Hay una excelente guía sobre:

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

Los puntos principales son:

  • agregue un config.ru a lib / gollum / frontend
  • Apunte la raíz de su documento a lib / gollum / frontend / public
  • Use el siguiente config.ru como base, establezca la ruta wiki en consecuencia (tuve que agregar la parte de configuración del paquete)
#!/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
fuente
1

La respuesta de August Lilleaas es correcta, sin embargo, necesitaba usar una versión anterior de gollum, así que la configuré con 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

También recuerde crear los directorios publicy tmp, como Passenger los requiere.

Sin embargo, me encontré con otro problema. Debe asegurarse de que gitesté en la ruta del usuario del servidor web. Para mí este no fue el caso, y desafortunadamente no hay un mensaje de error, siempre terminas en la página para crear una nueva página.

fabi
fuente