jimaoka blog

ライトなインフラエンジニアです

自宅用WikiとしてCrowiを利用する

f:id:jimaoka:20170105190223p:plain

以前から自宅にWikiを構築したかったため、年末年始休み中に構築を行いました。
自宅サーバ環境のメモや自分用のメモ等を置くため、クラウドではなく自宅サーバ上での構築をめざします。

候補となったソフト

当初はMediaWikiをインストールしてみたのですが、よいMarkdownプラグインがないうえ、階層構造の作りにくさや、UIの使いにくさから導入を断念しました。
その後、Crowiをインストールしてみて使ってみたところ、機能的に非常に使いやすかったため、そのまま使うことにしました。(DokuWiki候補にありましたが試していません)

Crowi

Crowi
http://site.crowi.wiki/

元々はクロコスという会社の社内Wikiとして開発されていて、今はオープンソースとなっているようです。 NodeJSで書かれており、セットアップも簡単でした。
おもに気に入った機能は下記のとおりです。

  • Markdownで書ける & リアルタイムプレビュー
  • ページの階層構造が存在
  • 各ページへパーマリンクでアクセス可能
  • 軽くて速い

動作やUI、機能面で行き届いていて使いやすく、しばらく使用してみてほとんど不満な部分はありませんでした。 (画像以外のファイルがアップロードできないのが若干不満なくらい)

構築手順

対象OS: CentOS 7.2

### node, mongodbのインストール

### 4.x LTSインストールのためのレポジトリ登録
$ sudo rpm -Uvh https://rpm.nodesource.com/pub_4.x/el/7/x86_64/nodesource-release-el7-1.noarch.rpm

### NodeJSのインストール
$ sudo yum install nodejs

### mongoDB用レポジトリの登録
$ sudo vim /etc/yum.repos.d/mongodb.repo
[mongodb]
name=MongoDB Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
gpgcheck=0
enabled=1

### mongodbのインストール
$ sudo yum install mongodb-org

### npmでの依存インストールのためのライブラリ追加
$ sudo yum install krb5-devel gcc-c++

### crowiのclone
$ git clone https://github.com/crowi/crowi.wiki.git
$ cd crowi

### 最新バージョンでチェックアウト
$ git checkout v1.5.2

### npmの依存パッケージインストール
$ npm install

### 適当なパラメータで実行
$ FILE_UPLOAD=local PASSWORD_SEED=crowipw MONGO_URI=mongodb://localhost/crowi npm start

### 止めておく
$ npm stop

### foreverで自動起動させるように設定していく
$ sudo npm install -g forever initd-forever log
 
### init.dスクリプトの作成
$ initd-forever -n crowi
Script daemon file saved to crowi
 
$ chmod +x crowi
$ mv crowi /etc/init.d

### 引数等を足す (FILE_UPLOAD=localを入れています)
$ sudo vim /etc/init.d/crowi
- nodeApp="/home/username/crowi"
+ nodeApp="/home/username/crowi/app.js"
- $foreverApp start --pidFile $pidFile -l $logFile -a -d -c "$command" $nodeApp
+ FILE_UPLOAD=local PASSWORD_SEED=crowipw MONGO_URI=mongodb://localhost/crowi $foreverApp start --pidFile $pidFile -l $logFile -a -d -c "$command" $nodeApp

### 起動設定
$ sudo chkconfig crowi --add
$ sudo chkconfig crowi on
$ sudo chkconfig crowi list
$ sudo service crowi start

まとめ

f:id:jimaoka:20170105184850p:plain

自宅用のWikiとして個人のみの使用となりますが、ひとまずCrowiを構築しました。
自宅サーバのホスト情報や、セットアップ手順のメモなどを記載するのに利用中です。(グラフらしきものはZabbixに送信した自宅の温湿度です)

利用ユーザが複数いる場合や、要件が異なる場合はまた使い勝手が異なってくるかと思いますが、個人での利用としては非常に満足しています。