在Archlinux上部署gitit Wiki

2012-05-18  看见就非常

在Archlinux上部署gitit Wiki

最近将blog更换成支持markdown的octopress后,又继续将wiki也一并更换了。原因很简单,dokuwiki对markdown支持的不好,我也懒得在一堆Lightweight markup language语法中切换了(markdown,dokuwiki,moinmoin),索性将一切markdown化。

开始时寻找了一堆dokuwiki的替代方案,evernote没代码高亮,不支持markdown,国内的服务可以直接无视,于是期间wiki就中断了,后来在zzy师兄(zzz的好基友!)的推荐下尝试了gitit,大有相见恨晚之意!总的来说他有如下优点:

  • 支持markdown
  • 没有数据库
  • 可以利用git进行离线管理
  • haskell写的wiki,折腾起来会比较有意思

然后我就在我Linode的vps上开始折腾了,linux的发行版是archlinux,我在后面的讲述中会尽量让适用情况变得generic。

准备

gitit需要自己编译安装,如果你的vps撑不住,可以在本地编译后scp到服务器上。

首先安装ghc和cabal-install

1
2
yaourt -S ghc abal-install              # Archlinux
sudo apt-get install ghc abal-install   # Ubuntu

更新源,开始编译安装

1
2
3
cabal update
cabal install pandoc -fhighlighting
cabal install gitit

编译过程中会出现各种蛋疼问题,一般重新编译一下就就没问题了(我在vps上出现过,可能是文件io限制引起的吧),千万不要用aur源里面的安装,依赖问题会让你蛋碎的!

搭建

新建一个名为gitit的目录,在里面执行gitit &就可以让wiki开始工作了,利用服务器的ip+5001端口就可以访问到wiki了。

但是更好的方法是利用配置文件,很多不错的功能只能通过配置文件来定制。先在终端用gitit --print-default-config > gitit.conf输出默认的配置文件,然后开始修改配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
wiki-title: Maple's Wiki
# the title of the wiki. 

require-authentication: modify
# if 'none', login is never required, and pages can be edited anonymously. 
# if 'modify', login is required to modify the wiki (edit, add, delete 
# pages, upload files). 
# if 'read', login is required to see any wiki pages. 

access-question: What's my name?
access-question-answers: Maple
# specifies a question that users must answer when they attempt to create
# an account, along with a comma-separated list of acceptable answers.
# This can be used to institute a rudimentary password for signing up as
# a user on the wiki, or as an alternative to reCAPTCHA.
# Example:
# access-question:  What is the code given to you by Ms. X?
# access-question-answers:  RED DOG, red dog

第一处修改wiki的标题,第二处更改wiki的类型,公开的/注册才可以编辑的或者是其他。 第三处是知道你问题的答案才可以注册,这样就可以让别人不能随意注册了。

然后gitit -f gitit.conf就可以按照配置文件来运行我们的wiki了。

绑定域名

如果想要绑定自己的域名可以用nginx做一个反向代理,配置的方法十分简单:

1
2
3
4
5
6
7
8
9
10
11
# gitit wiki
server{
    listen 80;
    server_name wiki.lovemaple.info;
    location / {
        proxy_redirect off;
        proxy_pass http://localhost:5001;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

使用git进行离线管理

这里只需要将你远程的vps中gitit的wikidata文件夹添加到本地repo的remote address既可,方法如下:

1
2
3
4
5
6
7
8
9
10
11
12
# 为gitit在本地创建新的文件夹
mkdir gitit
cd gitit

# 为gitit创建新的git repo
git init

# 添加名为gitit的远程仓库
git remote add gitit maple@lovemaple.info:~/gitit/wikidata

# 从远程仓库中拉取文件到本地
git pull gitit master:master

基本工作已经ok,域名绑定,离线管理,在线编辑的功能都有了。Enjoy it!

我的下一步工作是针对gitit的wiki修改一个主题,因为自带的太难看了,代码和正文完全无法区分,暂时打算继续使用bootstrap。

参考

    猜你喜欢
    发表评论评论公约
    喜欢该文的人也喜欢 更多