AI

OSSウィキ・ナレッジベース比較:Wiki.js vs BookStack vs Outline でConfluenceをセルフホスト

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

OSSウィキ・ナレッジベース比較:Wiki.js vs BookStack vs Outline でConfluenceをセルフホスト

ConfluenceはDataCenter版で年$27,000〜(500ユーザー)、Cloudは月$5.75/ユーザー〜と、チームが大きくなるほどコストが重くなります。Wiki.js(Node.js製)・BookStack(PHP/Laravel製)・Outline(React製)はConfluence代替のOSSナレッジベースツールです。セルフホストで無制限ページ・ユーザーを費用なしで管理できます。

OSSウィキを選ぶ理由

  • コスト削減: Confluenceの月$5.75/ユーザー × 100名 = $575/月を、VPS代のみで代替
  • データ主権: 社内ドキュメント・仕様書・議事録を自社サーバーに保管
  • Markdown対応: エンジニアが使いやすいMarkdown記法でドキュメントを書ける
  • Git連携: Wiki.jsはGitでウィキを管理(変更履歴がGitリポジトリに保存される)
  • カスタマイズ: テーマ・認証(SAML/LDAP/OAuth)・ストレージバックエンドを自由に設定

主要ツールの概要

Wiki.js

Node.js製のモダンなウィキプラットフォームです。GitHubスター26k+。Markdownエディター・リッチテキストエディター・コードブロック・数式(KaTeX)・ダイアグラム(Mermaid)に対応。認証プロバイダー(Google・GitHub・SAML・LDAP・Azure AD等)が豊富で、エンタープライズでのSSO統合に強い。ページをGitリポジトリに同期する機能があり、ウィキの変更履歴をGitで管理できます。

# Wiki.js をdocker-composeでセルフホスト
version: "3"
services:
  wiki:
    image: ghcr.io/requarks/wiki:2
    restart: always
    depends_on:
      - db
    ports:
      - "3000:3000"
    environment:
      DB_TYPE: postgres
      DB_HOST: db
      DB_PORT: 5432
      DB_USER: wikijs
      DB_PASS: your-password
      DB_NAME: wiki

  db:
    image: postgres:15-alpine
    restart: always
    environment:
      POSTGRES_USER: wikijs
      POSTGRES_PASSWORD: your-password
      POSTGRES_DB: wiki
    volumes:
      - wiki_db:/var/lib/postgresql/data

volumes:
  wiki_db:
// Wiki.js GraphQL APIでページを検索・取得(TypeScript)
// Wiki.jsはREST APIではなくGraphQL APIを提供

const WIKIJS_URL = 'https://wiki.yourcompany.com';
const WIKIJS_TOKEN = process.env.WIKIJS_API_TOKEN; // Administration > API Access から取得

async function searchWikiPages(query: string) {
  const res = await fetch(`${WIKIJS_URL}/graphql`, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      Authorization: `Bearer ${WIKIJS_TOKEN}`,
    },
    body: JSON.stringify({
      query: `
        query SearchPages($query: String!) {
          pages {
            search(query: $query, limit: 10) {
              results {
                id
                title
                path
                description
                updatedAt
              }
            }
          }
        }
      `,
      variables: { query },
    }),
  });
  const { data } = await res.json();
  return data.pages.search.results;
}

// 新しいページを作成
async function createWikiPage(
  title: string,
  content: string,
  path: string,
  tags: string[] = []
) {
  const res = await fetch(`${WIKIJS_URL}/graphql`, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      Authorization: `Bearer ${WIKIJS_TOKEN}`,
    },
    body: JSON.stringify({
      query: `
        mutation CreatePage($content: String!, $description: String!, $editor: String!, $isPrivate: Boolean!, $isPublished: Boolean!, $locale: String!, $path: String!, $tags: [String]!, $title: String!) {
          pages {
            create(content: $content, description: $description, editor: $editor, isPrivate: $isPrivate, isPublished: $isPublished, locale: $locale, path: $path, tags: $tags, title: $title) {
              responseResult {
                succeeded
                errorCode
                message
              }
              page {
                id
                path
                title
              }
            }
          }
        }
      `,
      variables: {
        content,
        description: title,
        editor: 'markdown',
        isPrivate: false,
        isPublished: true,
        locale: 'ja',
        path,
        tags,
        title,
      },
    }),
  });
  const { data } = await res.json();
  return data.pages.create;
}

BookStack

PHP・Laravel製のシンプルなドキュメント管理プラットフォームです。GitHubスター15k+。ドキュメントを本(Shelf→Book→Chapter→Page)の階層構造で整理するコンセプトで、部署ごとにBookを作って管理する使い方に向いています。WYSIWYGエディター(TinyMCE)が内蔵されており、非エンジニアも使いやすい。マルチ認証(LDAP・SAML・GitHub・Google等)対応。

# BookStackをdocker-composeでセルフホスト
version: "3"
services:
  bookstack:
    image: lscr.io/linuxserver/bookstack:latest
    restart: always
    depends_on:
      - bookstack_db
    ports:
      - "6875:80"
    environment:
      PUID: 1000
      PGID: 1000
      APP_URL: https://wiki.yourcompany.com
      DB_HOST: bookstack_db
      DB_PORT: 3306
      DB_USER: bookstack
      DB_PASS: your-password
      DB_DATABASE: bookstackapp
      MAIL_DRIVER: smtp
      MAIL_HOST: smtp.sendgrid.net
      MAIL_PORT: 587
      MAIL_ENCRYPTION: tls
      MAIL_USERNAME: apikey
      MAIL_PASSWORD: SG.your-key
      MAIL_FROM: noreply@yourcompany.com
      # SAML認証(Azure AD連携)
      AUTH_METHOD: saml2
      SAML2_NAME: "Company SSO"
      SAML2_EMAIL_ATTRIBUTE: http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
      SAML2_DISPLAY_NAME_ATTRIBUTES: http://schemas.microsoft.com/identity/claims/displayname
      SAML2_IDP_AUTHN_URL: https://login.microsoftonline.com/your-tenant-id/saml2
    volumes:
      - bookstack_data:/config

  bookstack_db:
    image: mysql:8
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_DATABASE: bookstackapp
      MYSQL_USER: bookstack
      MYSQL_PASSWORD: your-password
    volumes:
      - bookstack_db:/var/lib/mysql

volumes:
  bookstack_data:
  bookstack_db:
# BookStack REST APIでページを取得・作成
BOOKSTACK_URL="https://wiki.yourcompany.com"
TOKEN_ID="your-token-id"
TOKEN_SECRET="your-token-secret"

# ページ一覧を取得
curl -H "Authorization: Token ${TOKEN_ID}:${TOKEN_SECRET}"      "${BOOKSTACK_URL}/api/pages?count=10&sort=updated_at&order=desc"

# ページを作成
curl -X POST      -H "Authorization: Token ${TOKEN_ID}:${TOKEN_SECRET}"      -H "Content-Type: application/json"      -d '{"book_id": 1, "name": "新しいページ", "markdown": "# 見出し

内容"}'      "${BOOKSTACK_URL}/api/pages"

Outline

Notion風のブロックエディターを持つOSSナレッジベースです。GitHubスター30k+。Outlineはチームコラボレーションを重視したデザインで、ドキュメントにコメント・メンション・リアルタイム共同編集ができます。Slack連携で/outlineコマンドからドキュメントを検索可能。Markdownのエクスポートとインポートに対応。Notion代替として最も使いやすいOSSです。

# OutlineをDockerでセルフホスト
version: "3"
services:
  outline:
    image: outlinewiki/outline:latest
    restart: always
    depends_on:
      - postgres
      - redis
    ports:
      - "3000:3000"
    environment:
      NODE_ENV: production
      SECRET_KEY: your-64-char-secret-key-here
      UTILS_SECRET: your-64-char-utils-secret-here
      DATABASE_URL: postgres://outline:your-password@postgres:5432/outline
      REDIS_URL: redis://redis:6379
      URL: https://docs.yourcompany.com
      PORT: 3000
      # S3互換ストレージ(ファイルアップロード)
      AWS_ACCESS_KEY_ID: your-minio-key
      AWS_SECRET_ACCESS_KEY: your-minio-secret
      AWS_REGION: us-east-1
      AWS_S3_UPLOAD_BUCKET_NAME: outline
      AWS_S3_UPLOAD_BUCKET_URL: https://minio.yourcompany.com
      AWS_S3_FORCE_PATH_STYLE: "true"
      # Slack連携
      SLACK_CLIENT_ID: your-slack-client-id
      SLACK_CLIENT_SECRET: your-slack-client-secret
      # Google OAuth
      GOOGLE_CLIENT_ID: your-google-client-id
      GOOGLE_CLIENT_SECRET: your-google-client-secret

  postgres:
    image: postgres:15-alpine
    restart: always
    environment:
      POSTGRES_DB: outline
      POSTGRES_USER: outline
      POSTGRES_PASSWORD: your-password
    volumes:
      - postgres_data:/var/lib/postgresql/data

  redis:
    image: redis:7-alpine
    restart: always

  minio:
    image: minio/minio:latest
    restart: always
    ports:
      - "9000:9000"
      - "9001:9001"
    environment:
      MINIO_ROOT_USER: your-minio-key
      MINIO_ROOT_PASSWORD: your-minio-secret
    command: server /data --console-address ":9001"
    volumes:
      - minio_data:/data

volumes:
  postgres_data:
  minio_data:

機能比較表

比較項目Wiki.jsBookStackOutline
ライセンスAGPL-3.0MITBSL-1.1
最適用途Git連携・技術文書部署別ドキュメントNotion代替・コラボ
エディターMarkdown + WYSIWYGWYSIWYG(TinyMCE)ブロックエディター
リアルタイム共同編集
Git連携
認証プロバイダー多数(Google・SAML等)LDAP・SAML・OAuthOAuth・SAML
Slack連携
GitHub Stars26k+15k+30k+

Confluence・Notion代替のナレッジ管理ツール比較はKnowledgeカテゴリ/categories/knowledgeを参照。チームコラボレーションツールの全体像はCommunicationカテゴリ/categories/communicationにまとめています。

FAQ

Q. ConfluenceからWiki.jsに移行するにはどうすればよいですか?

A. ConfluenceのエクスポートはHTML形式またはXML形式で行い、Wiki.jsへのインポートには変換が必要です。推奨手順: ①Confluenceで「スペースのエクスポート」→HTML形式②HTMLをMarkdownに変換(confluence-to-md等のツールを使用)③Wiki.jsの「Import」機能でMarkdownファイルを一括インポート。Confluenceの添付ファイルは手動でダウンロードして再アップロードが必要です。スペース構造(Confluenceの階層)はWiki.jsのページパス(/team/product/spec等)として再現します。移行の工数は1,000ページで2〜3営業日が目安です。マクロ(Confluenceの特殊機能)はMarkdownで書き直す必要があります。

Q. OutlineはNotionと比べてどこまで機能が近いですか?

A. 近い機能: ブロックエディター・ドキュメント階層(Collection→Document)・コメント・メンション・キーボードショートカット・Markdownエクスポート・検索。足りない機能: データベース(テーブル・カレンダー・カンバンビュー)・ギャラリービュー・NotionのページプロパティとFilter/Sort機能・AIアシスト(Notion AI)・公開ページのOG画像自動生成・外部埋め込みプレビュー(Twitter・YouTube等)。総合評価: テキスト中心のドキュメント管理はOutlineでほぼ代替可能ですが、Notionをデータベース(プロジェクト管理・タスク管理)として使っている場合はOutlineでは代替できません。Notionをデータベース的に使っている部分には別途NocoDB・Baserow・Apeagleなどのツールを組み合わせる必要があります。

Q. BookStackのLDAP連携設定で詰まりやすいポイントは何ですか?

A. よくある落とし穴: ①LDAP_BASE_DN の設定ミス: DC=yourcompany,DC=comという形式が正しい(ドメインyourcompany.comならDC=yourcompany,DC=com)②LDAP_USER_FILTER のフォーマット: ({username_attr}=\{user})のバックスラッシュエスケープが必要(Docker環境変数では\{user})③TLS証明書の検証エラー: 自己署名証明書を使っている社内LDAPではLDAP_TLS_INSECURE=trueを一時的に設定してデバッグし、後で正規の証明書に切り替える。デバッグ手順: BookStackコンテナに入ってldapsearch -H ldap://your-ldap:389 -D "CN=bind-user,DC=yourcompany,DC=com" -W -b "DC=yourcompany,DC=com" "(sAMAccountName=testuser)"でLDAP疎通を確認するのが最速です。

Q. Wiki.jsのGit同期機能を使う場合、GitHubとどう連携しますか?

A. Wiki.jsの「Administration > Git Storage」で設定します。設定手順: ①GitHubにプライベートリポジトリを作成(例: yourcompany/wiki-content)②GitHubで「Deploy Key」または「Personal Access Token」を生成③Wiki.jsのGit Storageに接続情報(リポジトリURL・認証情報・ブランチ名)を設定④「同期間隔」を設定(デフォルト5分、最小1分)。動作: Wiki.jsでページを保存するたびに、変更がMarkdownファイルとしてGitリポジトリにコミットされます。GitリポジトリはCIでビルドして静的サイトとして提供することも可能です(VuePress・Docusaurusへの移行時にも役立ちます)。

まとめ

ユースケース推奨ツール
Git連携・技術文書管理Wiki.js
部署別・非エンジニア向けBookStack
Notion代替・コラボ重視Outline

関連外部リソース

他の記事も読む

Let's Build Together

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

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