10

Gollum is GitHub's new wiki engine written in Ruby. Deployed locally it uses a Sinatra instance to provide a web interface.

Is it possible to run it in a shared hosting environment such as Dreamhost using Apache and mod_rails (Phusion Passenger)?

migrated from superuser.com Sep 25 '10 at 20:41

This question came from our site for computer enthusiasts and power users.

5

Create the file "config.ru", add this to it:

require "gollum/frontend/app"

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

There's an excellent guide on:

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

The main points are:

  • add a config.ru to lib/gollum/frontend
  • Point your document root to lib/gollum/frontend/public
  • Use the following config.ru as a base, set wiki path accordingly (I had to add the bundler setup part)
#!/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
1

The answer of August Lilleaas is correct, however I needed to use an older version of gollum, so I set it up with 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

Also remember to create the directories public and tmp, as Passenger requires these.

However, I ran into another problem. You have to make sure that git is in the path of the webserver-user. For me this was not the case, and unfortunately there is no error message, you just always end up on the page to create a new page.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.