d.sunnyone.org
sunnyone.org

ページ

2012-11-18

GitバックエンドなWiki「Gollum」をインストールする

Gitit使ってたんじゃなかったのかよ、という話なのだが、Gititは単体でディレクトリ以下にホストできない((Virtual)Host必須)とか、いろいろ遭遇したので、別のものを使ってみた。

使ってみたのは、Githubの(?)Wiki engine「Gollum」
http://github.com/github/gollum


Ruby, Sinatraのお馴染みの構成。今のところRuby 1.8でも動く優しい仕様。
画面はこんな感じ。



インストール

gemで入れる方法もあるが、細かい事情によりちょいちょいいじる必要があるため、git cloneしてbundlerで拾ってくる方法を取る(bundlerは例えばUbuntu 12.04ならapt-get install ruby-bundlerで入る。)

bundleコマンドが使える状態になったら、bundleコマンドを叩く前に、libxsltの開発パッケージをインストールする(自分のところでこれが足りなかっただけで、他にも必要かも)
# apt-get install libxslt-dev

あとは、cloneしてbundle installすればOK。
$ cd ~/opt
$ git clone https://github.com/github/gollum.git
$ cd gollum
$ bundle install --path vendor/bundler

設定

保存するためのgitレポジトリを作る。
$ mkdir ~/wikidata
$ cd wikidata
$ git init
--bareで作ったものは2012/11/17時点のmasterでは怒られる(手元のは対応させちゃった)

実行方法

bundlerで入れたので、bundle execを使う。
$ bundle exec bin/gollum --port 5080 --base-path wiki ~/wikidata
--base-path wikiを指定すると、/wiki/がトップになる(=ProxyPassするときに便利)

あとはhttp://server:5080/wiki/にアクセスすればOK.

デーモン化

例によってrunitを使った。以下のような感じ。
$ mkdir -p ~/var/log/gollum
$ mkdir -p ~/service/.gollum/log

$ vi ~/service/.gollum/run
~~~
#!/bin/sh
echo "Start."
cd ~/opt/gollum
exec bundle exec bin/gollum --host 127.0.0.1 --port 5080 --base-path wiki ~/wikidata 2>&1
~~~

$ chmod +x ~/service/.gollum/run
$ vi ~/service/.gollum/log/run
~~~
#!/bin/sh
exec svlogd -tt ~/var/log/gollum
~~~

chmod +x ~/service/.gollum/log/run

$ mv ~/service/.gollum ~/service/gollum

--host 127.0.0.1をつけたいんだけど、--helpに書いてあるのにまさかの無視される罠があるのでそのままでは使えない。(これも対応させた。)
マージされたので--host使えます。

認証

Apacheでかける。

<Location /wiki>
          AuthUserFile /dokka/www/htpasswd-wiki
          AuthGroupFile /dev/null
          AuthName "Input password"
          AuthType basic

          require valid-user
        </Location>

        ProxyPass /wiki/ http://127.0.0.1:5080/wiki/
        ProxyPassReverse /wiki/ http://127.0.0.1:5080/wiki/

これで概ね使うことができる。


0 件のコメント:

コメントを投稿