OSS の Wiki といえば、Wikipedia に使われている「 Media Wiki 」をはじめとして、データベースが不要な「 DocuWiki 」、「 CROWI 」「 GROWI 」 などいろいろあります。
その中でも Wiki.js は 2017 年に発表されたかなり新しい OSS の Wiki で、高速な JavaScript のエンジンを使用しているために高速で、デザインも良く、とても多機能です。
公式ドキュメントをざっと読んで、その機能と特徴をまとめます。
公式は、「最もパワフルで、拡張性のあるオープンソースのWiki」を謳っています。
次のような特徴があるとしています。
- どこにでもインストールできる
- だいたいどんな仮想環境にもインストールできて、大抵のRDBに対応しています。
- 権限管理
- 管理できるエリアを詳細に設定できます。
- 高いパフォーマンス
- パフォーマンスを意識していて、高速な Node.js エンジンを使用しています。
- カスタマイズ性
- デザインの変更が容易です。ライトモード・ダークモードもあります。
- 機密性
- 一般公開や社内での限定公開、その組み合わせにも対応しています。
- スケーラブル
- ラズパイ上でも、高性能なクラウド上でも、いい感じに動きます。
- 簡単にインストールできる
全てのユーザが全ての機能を必要としているわけではないので、オンデマンドで次のような機能をオンオフできるみたいです。オンデマンドというのは、初期構築時ではなく、後から設定を変更できるという意味のようです。
- 認証
- ローカルでの認証 : これは超一般的な、ユーザ名やパスワードをDB内に保存する系の認証です。
- ソーシャルログイン : サードパーティの Google, Facebook, Microsoft, GitHub, Discord, Slack とかでログインできるみたいです。
- エンタープライズ : LDAP, SAML, CAS, Auth0, Okta, Azure AD とかの認証基盤が使える。OAuth2 と OpenIDコネクトのモジュールも含まれてます。
- 2段階認証もあります。
- エディタ
- マークダウン
- ビジュアルエディタ
- 生HTML
- (実装予定) WikiText : MediaWiki(Wikipedia)と同じ記法みたいです。
- 履歴管理
- 変更・削除のバージョン管理
- バージョンの差分
- 古いバージョンのページをエクスポートしたり新しいページにできます。
- ローカライズ
- 40言語に対応
- 右から書く言語にも対応
- 同じページを複数言語で管理できます。
- メディア管理
- メディアをフォルダ分けとかして管理できます。
- (実装予定) 画像編集ツール
- レンダリング
- シンタックスハイライト
- UML、シーケンス図、フローチャート
- TeX、MathML
- (実装予定) YouTube の動画や音声、asciinema (ターミナルを録画できるやつ) のプレーヤー
- 検索
- ビルトインの検索エンジン
- Algolia, Azure Search などのクラウド検索エンジン
- Elasticsearch
- (実装予定) Manticore, Solr, Sphinxなど
- ストレージ
- GitHub, GitLab, BitBucket, Azure DevOps などへのバックアップ
- AWS S3, Azure Blob Storage, Google Cloud Storage, DigitalOcean Spacesなどへのバックアップ
- (実装予定) Dropbox, Google Drive, MS OneDrive, Box など
- ローカルディスクへの保存、SSHを使用したリモートサーバへの保存
- ユーザ管理
- ユーザの作成や既存ユーザの変更が簡単にできます
- グループ
- ページの編集、アセット管理、管理画面へのアクセスなどをグループごとに細かく設定できます
- ページへの前方・後方一致や正規表現を使用して、グループに細かい権限設定ができます
- テーマ
- (実装予定) カスタムテーマ
- ダークモード
- (実装予定) デフォルトテーマのパーソナライゼーション(色とか)
- CSS / JS のインジェクション
さいごに
とても機能が豊富で、大抵の場合 Wiki として必要な機能は揃っていると感じました。
驚くことに、Wiki.js はこれをほぼ一人で作ってるみたいです!
次の記事では、実際に Wiki.js を AWS にデプロイする方法をご紹介したいと思います!