AI

OSSウィキ比較:BookStack vs Wiki.js vs DokuWiki で社内ナレッジベースをセルフホストする

オープンソースラボ編集部2026年6月14日

OSSウィキ比較:BookStack vs Wiki.js vs DokuWiki で社内ナレッジベースをセルフホストする

Confluence(月$600/10ユーザー〜)・Notion(月$8/ユーザー〜)・GitBook(月$6.7/ユーザー〜)に対して、BookStack(PHP製のシンプルウィキ)・Wiki.js(Node.js製の高機能ウィキ)・DokuWiki(ファイルベースの軽量ウィキ)はSaaS費用なしでナレッジベースを構築できます。

OSSウィキを選ぶ理由

  • コスト: Confluence 50ユーザーは月$250。BookStackセルフホストで0円
  • データ主権: 社内ナレッジ・議事録・設計書を外部SaaSに預けない
  • カスタマイズ: LDAP/OIDC統合・カスタムCSS・API自動化が自由
  • Markdown/Git連携: Wiki.jsはGitリポジトリをコンテンツバックエンドとして使用可能

主要ツールの概要

BookStack

2015年公開、PHP/Laravel製のOSSウィキです。GitHubスター16k+。Book→Chapter→Pageの3層構造でドキュメントを整理します。WYSIWYGエディタ(TinyMCE)標準搭載・全文検索・LDAP/SAML/OIDC認証・APIを備えた実用的なConfluence代替です。

# docker-compose.yml - BookStack セルフホスト
version: '3.8'
services:
  bookstack:
    image: lscr.io/linuxserver/bookstack:latest
    restart: unless-stopped
    ports:
      - "8080:80"
    environment:
      APP_URL: https://wiki.yourcompany.com
      DB_HOST: mysql
      DB_PORT: "3306"
      DB_DATABASE: bookstack
      DB_USERNAME: bookstack
      DB_PASSWORD: ${DB_PASSWORD}
      # メール設定
      MAIL_DRIVER: smtp
      MAIL_HOST: smtp.sendgrid.net
      MAIL_PORT: "587"
      MAIL_ENCRYPTION: tls
      MAIL_USERNAME: apikey
      MAIL_PASSWORD: ${SENDGRID_API_KEY}
      MAIL_FROM: wiki@yourcompany.com
      # OIDC認証(Google Workspace / Okta / Keycloak)
      AUTH_METHOD: oidc
      OIDC_NAME: "Google Workspace"
      OIDC_DISPLAY_NAME_CLAIMS: name
      OIDC_CLIENT_ID: ${OIDC_CLIENT_ID}
      OIDC_CLIENT_SECRET: ${OIDC_CLIENT_SECRET}
      OIDC_ISSUER: https://accounts.google.com
      OIDC_ISSUER_DISCOVER: "true"
    volumes:
      - bookstack_data:/config
    depends_on:
      - mysql

  mysql:
    image: mysql:8.0
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_DATABASE: bookstack
      MYSQL_USER: bookstack
      MYSQL_PASSWORD: ${DB_PASSWORD}
    volumes:
      - mysql_data:/var/lib/mysql

volumes:
  bookstack_data:
  mysql_data:
# BookStack REST API でページを自動作成・更新
import requests
import os

BOOKSTACK_URL = 'https://wiki.yourcompany.com'
TOKEN_ID = os.environ['BOOKSTACK_TOKEN_ID']
TOKEN_SECRET = os.environ['BOOKSTACK_TOKEN_SECRET']

headers = {
    'Authorization': f'Token {TOKEN_ID}:{TOKEN_SECRET}',
    'Content-Type': 'application/json',
}

def create_page(book_id: int, chapter_id: int, name: str, markdown: str) -> dict:
    resp = requests.post(
        f'{BOOKSTACK_URL}/api/pages',
        headers=headers,
        json={
            'book_id': book_id,
            'chapter_id': chapter_id,
            'name': name,
            'markdown': markdown,
        },
    )
    resp.raise_for_status()
    return resp.json()

def search_pages(query: str) -> list:
    resp = requests.get(
        f'{BOOKSTACK_URL}/api/search',
        headers=headers,
        params={'query': query, 'count': 20},
    )
    resp.raise_for_status()
    return resp.json()['data']

# 使用例: CI/CDのデプロイ後にリリースノートを自動投稿
release_note = '''
# v2.3.0 リリースノート

## 新機能
- OSSツール比較機能を追加
- ダークモード対応

## バグ修正
- ページ読み込みが遅い問題を修正
'''
page = create_page(
    book_id=1,
    chapter_id=5,
    name='v2.3.0 リリースノート (2026-06-14)',
    markdown=release_note,
)
print(f'ページ作成完了: {BOOKSTACK_URL}/link/{page["id"]}')

Wiki.js

2016年公開、Node.js製のOSSウィキです。GitHubスター25k+。Markdownエディタ・WYSIWYGエディタ・Diagramsnet(draw.io)統合を標準搭載し、Git・GitHub・GitLabをコンテンツバックエンドとして使える点が独自機能です。PostgreSQL・MySQL・SQLite・MariaDBに対応します。

# docker-compose.yml - Wiki.js with PostgreSQL
version: '3.8'
services:
  wikijs:
    image: ghcr.io/requarks/wiki:2
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      DB_TYPE: postgres
      DB_HOST: postgres
      DB_PORT: "5432"
      DB_USER: wikijs
      DB_PASS: ${DB_PASSWORD}
      DB_NAME: wikijs
    depends_on:
      - postgres

  postgres:
    image: postgres:16-alpine
    restart: unless-stopped
    environment:
      POSTGRES_DB: wikijs
      POSTGRES_USER: wikijs
      POSTGRES_PASSWORD: ${DB_PASSWORD}
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:

機能比較表

比較項目BookStackWiki.jsDokuWiki
WYSIWYG△(プラグイン)
Markdown❌(独自構文)
Gitバックエンド
LDAP/OIDC✅(プラグイン)
データストアMySQL/MariaDBPostgreSQL等ファイル
GitHub Stars16k+25k+0.7k+

社内ウィキはDevOpsカテゴリ/categories/devopsのGitLab・GitHub Actionsと連携してCI/CDパイプラインのドキュメントを自動更新します。コミュニケーションカテゴリ/categories/communicationのMattermost・Rocket.Chatと組み合わせてSlash Command経由でウィキを検索する統合も実現できます。

FAQ

Q. BookStackとConfluenceのどちらが移行しやすいですか?

A. BookStackへの移行が比較的容易です。Confluenceからのエクスポート(Space Export → XML/HTML)をBookStack ImporterでインポートできるツールがOSSで公開されています(confluence-to-bookstack-importer)。BookStackはページをHTMLまたはMarkdownで直接インポートできる(/api/pagesでcontent_htmlを送信)ため、自動化スクリプトも書きやすいです。注意点: Confluenceのマクロ(Drawio図・コードブロック等)は手動での再設定が必要です。画像は添付ファイルAPIで別途アップロードが必要。移行前にConfluenceのページ数・スペース数・添付ファイル数を確認して工数を見積もることを推奨します。

Q. Wiki.jsのGitバックエンドはどういう仕組みですか?

A. Wiki.jsの「Git Storage Module」を有効化すると、すべてのウィキページがMarkdownファイルとしてGitリポジトリにコミットされます。仕組み: ①編集→保存するとDBに書き込まれると同時にGitコミットが生成②GitHubまたはGitLabへ自動プッシュ(設定可能)③他の場所でMarkdownを編集→プッシュするとWiki.jsに自動同期。利点: GitHubのPull Requestでウィキのレビューができる・すべての変更履歴がgit logで追える・Webサイトとして静的にホスティングも可能。設定: Admin → Storage → Git → Repository URLとSSH/HTTPs認証を設定。

Q. DokuWikiの大きなファイル保存でパフォーマンスが落ちるのはなぜですか?

A. DokuWikiはファイルシステム(data/pages/ディレクトリ)に全ページをテキストファイルとして保存し、全文検索はファイルを順次スキャンするため、ページ数が増えると検索が遅くなります(1,000ページを超えると体感できる程度に)。対策: ①ElasticSearch Pluginで全文検索をElasticsearchに委任②定期的にブラウザキャッシュ・DokuWikiキャッシュをクリア③SSDストレージを使用。大規模(1,000ページ+)の場合はBookStack(MySQL)またはWiki.js(PostgreSQL)への移行を検討してください。

Q. BookStackでMermaidダイアグラムを使うには?

A. BookStack 23.01以降はMermaidダイアグラムが標準でサポートされています。ページのMarkdownエディタで以下のコードブロックを使用: ~~~mermaid ブロック内にMermaid記法(graph LR, sequenceDiagram, gantt等)を記述します。WYSIWYGエディタでは「Insert → Diagram」からDiagrams.net(draw.io)の組み込みエディタを使用できます(ベクター図・フローチャート・ER図)。Mermaidの例: GitのブランチフローをSequenceDiagramで記述してCIパイプラインのドキュメント化に使う活用が多いです。

まとめ

ユースケース推奨ツール
Confluence代替・WYSIWYG重視BookStack
Markdownエディタ・Git統合Wiki.js
超軽量・DB不要・プラグイン豊富DokuWiki

関連外部リソース

他の記事も読む

Let's Build Together

OSS導入、自社だけで悩まない。

ツール選定から構築・運用・AI活用まで、オープンソースラボ運営元のClasslessが伴走します。初回のご相談は無料です。