オープンソース

一覧へ

9. 高度な設定とカスタマイズ

9.1. メールの設定を行う

Wiki.js からメールを受信するには、メールサーバの設定が必要です。 Wiki.jsのメール設定は、パスワードのリセットや、ようこそメール、通知などの重要なメールを送信するために必要となります。

メール設定は、管理画面の メール メニューから行います。

Wiki.jsメール設定

メール設定に必要な項目は以下の通りです。

  • 送信者名:Wiki.js から送信されるメールの送信者名を設定します。
  • 送信者のアドレス:Wiki.js から送信されるメールの送信者アドレスを設定します。
  • ホスト:SMTPメールサーバのホスト名またはIPアドレスを設定します。
  • ポート:SMTPメールサーバのポート番号を設定します。通常は465(推奨)、587、25のいずれかです。
  • admin:mail.smtpName:メーラーを識別するためにSMTPサーバに送信するオプションの名前を設定します。サーバのホスト名を使用する場合は空のままにします。Google Workspaceを使用している場合は、メインのドメイン名を設定する必要があります。
  • 安全な通信(TLS):ポート番号が465を使用する場合は有効にし、それ以外の場合(587や25の場合)は無効にします。
  • SSL証明書の検証:一部のホストでは、SSL証明書のチェックを無効にする必要があります。適切なセキュリティを確保するには、有効のままにしておきます。
  • ユーザー名:SMTPサーバへの認証に使用されるユーザー名を設定します。
  • パスワード:SMTPサーバへの認証に使用するパスワードを設定します。

任意でDKIMの設定を行うこともできます。

Note

DKIM (DomainKeys Identified Mail) とは、受信者がドメイン名を検証し、メッセージの信頼性を確認する手段を提供する仕組みです。これにより、Wiki.js から送信されるすべてのメールの安全性を高めることができます。ただし、すべてのメールプロバイダーがこの機能をサポートしているわけではありませんので、必要に応じて設定をしてください。

  • DKIMを使う:DKIMを使用する場合は有効にします。
  • ドメイン名:DKIM検証に使用されるドメイン名を設定します。
  • キーセレクタ:DNSレコードのDKIMにどのキーを使用するかを指定します。
  • 秘密鍵:PEM形式のセレクターの秘密鍵を設定します。

設定後、 適用 ボタンをクリックし、設定を反映します。

設定反映後、テスト用のメールを使って設定を確認することもできます。

Wiki.jsメール設定

Note

メール設定の反映後に実施する必要があります。

受信者のメールアドレスを入力し、 メールを送信する ボタンを押すとテストメールが送信されます。

9.2. コメント機能を許可/禁止する

Wiki.jsでは、記事に対しコメントを追加する機能があります。 しかし、運用方法によっては、システム全体でコメント機能自体を禁止したい場合があります。

ここでは、コメント機能をシステム全体で許可/禁止する方法について解説します。

Note

Wiki.jsでは、グループごとにコメントを許可/禁止することも可能です。 グループごとの設定方法については、 グループが可能な操作を設定する を参照してください。

システム全体でコメント機能を許可/禁止するには、管理画面の 全般設定 から設定を行います。

Wiki.jsのコメント機能

Featuresの項目にある Comments で設定を行います。

  • 有効:コメント機能を許可
  • 無効:コメント機能を禁止

設定後、 適用 をクリックし、設定を反映します。

9.3. 全文検索を有効にする

Wiki.jsのデフォルトでは、標準のデータベースによる検索を採用しています。 ただし、標準の状態では記事のタイトルでの検索しか行うことができません。 そのため、記事の中に記載されている内容も検索対象としたい場合、全文検索を有効にする必要があります。

Wiki.jsで全文検索を行うためには、検索エンジンの設定が必要です。 Wiki.jsで使用できる検索エンジンは以下の通りです。

  • AWSs CloudSearch
  • Algolia
  • Azure Search
  • Database - PostgreSQL
  • Elasticsearch

日本語での検索の場合、日本語に対応した検索マッピングを持つ Elasticsearch がお勧めです。 ここでは、Elasticsearchを使った全文検索の設定について解説します。

Note

Wiki.jsでElasticseachを使用するためには、利用可能なElasticseachを準備しておく必要があります。

検索エンジンの設定を行うには、管理画面の 検索エンジン から行います。

Wiki.jsの検索エンジン

デフォルトでは、Database-Basic が選択されています。 検索エンジンから Elasticsearch を選択し、設定を行います。

Wiki.jsのElacticsearch設定

設定する項目は以下の通りです。

  • Elasticsearch Version:Elasticsearchのバージョンを選択します
    • Elasticsearch は、現在バージョン6と7のみの対応しています。
    • 使用しているElasticsearchのバージョンと同じものを選択してください。
  • Host(s):接続するホストを入力します
  • Verify TLS Certificate:TLS証明書を検証する場合は有効にします
  • TLS Certificate Path:サーバ上のTLS証明書への絶対パスを設定します
  • Index Name:作成時に使用するインデックス名を設定します
  • Analyzer:elasticsearch のトークンアナライザーを設定します
    • 日本語を検索する場合は、 kuromoji という分析プラグインを使用します
  • Sniff on start:最初の接続時にクラスターの残りの部分を自動的に検出したい場合は有効にします
  • Sniff Interval:更新されたノードのリストをチェックする時間間隔を指定します。

設定後、 適用 をクリックし、設定を反映します。

設定反映後は、 インデックスの再構築 をクリックします。 これにより、インデックスが構築され、すぐに全文検索ができるようになります。

9.4. マークアップ言語の設定を行う

Wiki.js は、複数のエディタを用いてページの作成を行うことができます。 さらに使用するエディタによって、利用できるマークアップ言語を設定することができます。

マークアップ言語の設定は、管理画面の レンダリング メニューから行います。

Wiki.jsのレンダリング設定

Markdown エディタで使用するマークアップ言語に関して設定できる内容は以下の通りです。

9.4.1. MarkdownコンテンツをHTMLに変換できるようにする

Core を有効にすることで、MarkdownコンテンツをHTMLに変換できるようになります。

さらにHTMLへの変換で可能な操作について細かく有効/無効を設定できます。

  • Allow HTML:コンテンツ内の HTML タブを有効にします
  • Automatically convert links:リンクをクリック可能なリンクに自動的に変換します
  • Automatically convert line breaks:段落内に改行を追加します
  • Typographer:言語に依存しない引用符を使った表示を可能にします
  • Quotes style:Typographerが有効な場合に引用符のスタイルを設定します

9.4.2. 省略文字を利用できるようにする

Abbreviations を有効にすることで、以下のような省略文字の利用が可能になります。

*[HTML]: Hyper Text Markup Language
*[W3C]:  World Wide Web Consortium
The HTML specification
is maintained by the W3C.

Markdownエディタで上記のように記載した場合、HTMLの形式では以下のようになります。

<p>The <abbr title="Hyper Text Markup Language">HTML</abbr> specification
is maintained by the <abbr title="World Wide Web Consortium">W3C</abbr>.</p>

9.4.3. 絵文字を利用できるようにする

Emoji を有効にすることで、絵文字の利用が可能になります。

:apple:

Markdownエディタで上記のように記載した場合、HTMLの形式ではリンゴの絵文字に変換されます。

9.4.4. タブを変換する時のスペースの数を設定する

Expand Tabs を有効にすることで、タブを変換する時のスペースの数の設定できるようになります。

9.4.5. Markdownの脚注を利用できるようにする

Footnotes を有効にすることで、markdown-itに含まれる脚注の利用が可能になります。

9.4.6. 画像サイズを指定できるようにする

Image Size を有効にすることで、画像サイズの指定が可能になります。

![test](image.png =100x200)

Markdownエディタで上記のように記載した場合、HTMLの形式では以下のようになります。

<p><img src="image.png" alt="test" width="100" height="200"></p>

9.4.7. KaTeXを使用して数式を綺麗に表示できるようにする

Katex を有効にすることで、WEBインタフェース上で数式を綺麗に表示できるようになります。

Mathjaxと併用することはできませんので注意してください。

  • Inline TeX:$ で囲まれたインラインTeX式を処理します
  • TeX Blocks:$$ 囲まれたTeXブロックを処理します

9.4.8. Krokiを使用してテキストから図を生成できるようにする

Krokiを有効にすることで、テキストの説明から図を生成することができるようになります。

  • Kroki Server:画像生成に使用されるKrokiサーバを指定します
  • Open Marker:開始区切り文字として使用する文字列を指定します。図の種類は次の行に小文字で入力する必要があります。
  • Close Marker:終了区切り文字として使用する文字列を指定します

9.4.9. Mathjaxを使用して数式を綺麗に表示できるようにする

Mathjax を有効にすることで、WEBインタフェース上で数式を綺麗に表示できるようになります。

KaTeXと併用することはできませんので注意してください。

  • Inline TeX:$ で囲まれたインラインTeX式を処理します
  • TeX Blocks:$$ 囲まれたTeXブロックを処理します

9.4.10. PlantUML記述から図を生成できるようにする

PlantUMLを有効にすることで、PlantUMLによる記述から図を生成することができるようになります。

  • Kroki Server:画像生成に使用されるPlantUMLサーバを指定します
  • Open Marker:開始区切り文字として使用する文字列を指定します
  • Close Marker:終了区切り文字として使用する文字列を指定します
  • Image Format:レンダリングされたPlantUML画像に使用する形式を指定します

9.4.11. Subscript/Superscriptを利用できるようにする

Subscript/Superscriptを有効にすることで、Subscript(下付き文字)/Superscript(上付き文字)を利用できるようにします。

  • Subscript:下付き文字タグを有効にします
  • Superscript:上付き文字タグを有効にします
H~2~0
Exp^10^

Markdownエディタで上記のように記載した場合、HTMLの形式では以下のようになります。

H<sub>2</sub>O
Exp<sup>10</sup>

9.4.12. タスクリストを作成できるようにする

Task Listsを有効にすることで、四角括弧のリストをHTMLでチェックボックスに変換可能になります。

- [ ] Item 1
- [ ] Item 2
- [x] Item 3

9.5. 外部ストレージにバックアップを作成する

Wiki.jsは、ストレージの機能を用いて、記事のフォルダ階層を維持しつつ、テキストファイル (Markdow 形式やHTML形式等) としてバックアップを作成することができます。

さらに、テキストファイルには、メタ的な情報としてタイトルやタグなどの情報も含まれます。テキストファイルをそのまま読むことができるため、最悪Wiki.js自体が失われても情報を使うことはできます。 また、Gitのストレージであればインポートもできるため、同じフォルダ構造で復旧することも容易です。

ここでは、インポートも可能なGitにバックアップを作成する方法について解説します。

9.5.1. 鍵を生成する

Gitと連携するには、Wiki.jsのサーバで連携のための鍵を生成する必要があります。

端末で以下を実行します。

# ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): Wiki.js からアクセスできるパスを入力
Enter passphrase (empty for no passphrase): 空のままEnter
Enter same passphrase again: 空のままEnter

生成した鍵はGitHubに追加します。

9.5.2. 鍵をGitHubに追加する

GitHunに鍵を追加するには以下の手順で行います。

  1. GitHunに新しくリポジトリを作成します。
  2. Settings タグをクリックします。
  3. Security メニューにある Deploy keys をクリックします。
  4. 鍵に任意の名前を設定し、生成した公開キーの内容を貼り付けます。(ファイル末尾が.pub)
  5. Allow write access を有効にします
  6. Add Key をクリックします

GitHub側の設定は以上です。

9.5.3. Wiki.js側の設定を行う

続いて、Wiki.js側の設定を行います。

管理画面の ストレージ メニューから設定します。 ターゲットから設定したい外部ストレージを選択します。 今回は、Gitを選択します。

Wiki.js外部ストレージ設定

設定する項目は以下の通りです。

  • Authentication Type
    • 認証タイプを選択します
    • 最もセキュアなsshを推奨します
  • Repository URI
    • GitHubのリポジトリページのCodeタブに表示されるSSHでクローンする場合のURIをコピーし、貼り付けます
  • Branch
    • pull/push時に使用するブランチを設定します
  • SSH Private Key Mode
    • SSH認証の場合のみ、秘密鍵の読み込みに使用するモードを選択します
  • A - SSH Private Key Path
    • 生成した秘密鍵へのパスを設定します
    • SSH認証の場合で、SSH Private Key ModeでPathを選択した場合のみ設定します
  • B - SSH Private Key Contents
    • 生成した秘密鍵の内容を貼り付けます
    • SSH認証の場合で、SSH Private Key ModeでContentsを選択した場合のみ設定します
  • Verify SSL Certificate
    • SSL証明書を検証する場合は有効にします
      • 適切なセキュリティを確保するためには有効を推奨します
  • Username
    • Authentication TypeでBaseを選択した場合に設定します
    • ユーザー名を入力します
    • SSH認証の場合は空にします
  • Password / PAT
    • Authentication TypeでBaseを選択した場合に設定します
    • パスワードを入力します
    • SSH認証の場合は空にします
  • Default Author Email
    • GitHubアカウントのメールアドレスを設定します
  • Default Author Name
    • GitHubのアカウント名を設定します
  • Local Repository Path
    • リポジトリをローカルに複製する場所を設定します
  • Git Binary Path
    • Gitバイナリへのパスを指定します
    • デフォルトのPATHを使用する場合は空のままにします(推奨)
  • 同期の方向
    • 同期の方向を選択します。
    • 双方向
      • ストレージからコンテンツをpullしてきます。新しいコンテンツはローカルのコンテンツを上書きします。最後の同期以降に新しく増えたコンテンツはストレージにpushされ、ストレージ側にも同じコンテンツがあればそれを上書きします。
    • ターゲットへpush
      • コンテンツを常にストレージへpushします。既存のコンテンツは上書きされます。バックアップ目的としてはもっとも安全な選択肢です。
    • ターゲットからpull
      • コンテンツを常にストレージからpullします。既存のローカルのコンテンツは上書きされます。これは通常使い捨てのコンテンツをインポートするためのものです。ローカルのコンテンツが常に上書きされることにご注意ください。
  • 同期スケジュール
    • 同期を行う時間間隔を設定します
      • パフォーマンス上の理由から、このストレージは変更のたびに毎回同期するのではなく決められた間隔で同期します。
      • デフォルトは5分です。

設定後、 適用 ボタンをクリックし反映します。

一覧へ