LASSIC Media らしくメディア
BookStackで社内wiki基盤を外注構築
LASSIC IT事業部|元請(プライムベンダー)としてシステム保守・運用を受託
この記事のポイント
- BookStackはBook・Chapter・Pageの階層構造で情報を整理するセルフホスト型の社内wikiです。
- WYSIWYGとMarkdownの編集、全文検索、ロールベースの権限管理を標準機能として備えます。
- 構築・認証連携・運用保守を内製と外注のどちらで担うかは、体制と要件次第で判断が変わります。
目次
BookStackとは何か・階層構造と編集機能
BookStackとは、社内文書やナレッジをBook・Chapter・Pageという3階層で整理し、セルフホスト環境で運用するオープンソースの情報管理プラットフォームである*1。ライセンスはMITで、ソースコードは無償で公開されています*2。
公式ドキュメントでは、この3階層を「シンプルな現実世界のグループ」と説明しています*1。Bookは部門や製品ごとの書棚、Chapterはその中のテーマ別の章、Pageが実際の文書という位置付けです。棚(Shelf)でBookをまとめて分類することも可能です*3。
ページ編集はWYSIWYG(見た通りに編集できる形式)インターフェースに加え、Markdownエディタも選択できます。Markdown編集時はリアルタイムプレビューが表示されるため、記法を確認しながら書き進められます*1。編集方式を混在させても、既存ページの表示や検索には影響しません。
全文検索と権限管理の仕組み
BookStackはヘッダーの検索バーからシステム全体を横断検索できます。書籍単位の検索と、Book・Chapter・Pageをまたいだグローバル検索の両方に対応し、検索構文によるフィルター指定も可能です*4。ナレッジが増えても、目的のページを探す手間が積み上がりにくい設計です。
権限管理はロール(役割)と権限の組み合わせで制御します。ユーザーには複数のロールを割り当てられ、権限は重ね合わされて反映されます。いずれかのロールが特定の操作を許可していれば、そのユーザーは実行できます*5。
ロールの作成・編集は管理者が「Settings」から行い、既定のロールがあらかじめ用意されています。さらに、Shelf・Book・Chapter・Pageの各コンテンツ単位で個別に権限を上書きすることも可能です*5。BookやChapterの権限設定は配下のコンテンツに引き継がれる一方、Shelfの権限は自動継承されない点に注意が必要です*5。部門をまたぐ全社wikiでは、この単位の細かさが公開範囲の設計に直結します。
SaaS型ナレッジツールとの違い
ConfluenceやNotionのようなSaaS型ナレッジツールは、契約すればすぐに使い始められる利便性があります。一方、BookStackはソースコードを自社サーバーやクラウド環境に配置して稼働させるセルフホスト型です*1。両者は運用モデルそのものが異なるため、単純にどちらが優れているとは言えません。事業者の要件によって適する形態が変わります。
| 比較軸 | BookStack(セルフホスト) | SaaS型ナレッジツール |
|---|---|---|
| データの保管場所 | 自社が選定したサーバー・クラウド環境。 データの物理的な配置を自社で決定できます。 |
提供事業者のクラウド環境。 保管先はサービス提供者の管理下にあります。 |
| ライセンス形態 | MITライセンスのオープンソース*2。 ソフトウェア自体の利用に契約料は発生しません。 |
ユーザー数・機能に応じた月額課金が一般的です。 利用者数の増加に応じて費用が積み上がります。 |
| 導入までの手間 | サーバー構築・DB準備・初期設定が必要です*6。 環境構築の技術知識を要します。 |
契約後すぐに利用を開始できます。 サーバー管理の作業は発生しません。 |
| 運用保守の主体 | 自社またはパートナーがOS・ミドルウェア・ アプリのバージョン管理を担います。 |
提供事業者側がインフラ運用を担います。 利用者側の保守負担は小さくなります。 |
| 認証連携の柔軟性 | LDAP・SAML2・OIDCに対応し*7、 既存の社内認証基盤と統合しやすい構成です。 |
サービスごとに対応する認証方式が異なります。 契約プランで機能が制限される場合があります。 |
セルフホストを選ぶ意義 — データ主権とライセンスコスト
セルフホストを選ぶ主な理由の一つは、データの保管場所と管理権限を自社の裁量下に置けることです。社内規程や取引先との契約で情報の保管先に制約がある事業者にとって、配置先を自社で選定できる点は検討材料になります。
ライセンスコストの面では、BookStack自体はMITライセンスで無償利用が可能です*2。ただし、サーバーの調達・構築・運用にかかる人件費やインフラ費用は別途発生します。ソフトウェアの利用料が不要な点と、運用にかかる実費が生じる点は分けて捉える必要があります。
PHP 8.2以上、MySQL 8.0以上またはMariaDB 10.6以上、Composerなどのツール群が動作要件として明示されています*6。これらの要件を満たす環境を自前で維持し続けることが、セルフホストを選ぶ際の前提条件になります。
認証連携 — LDAP・SAML2・OIDCによるSSO
BookStackはメールとパスワードによる認証のほか、OIDC(OpenID Connect)、SAML2、LDAP(Lightweight Directory Access Protocol、ディレクトリサービスへの問い合わせプロトコル)に対応しています*1。既存の社内アカウント基盤と連携させ、SSO(シングルサインオン、複数システムへ一度の認証でログインできる仕組み)を構成できます。
LDAP連携では、標準のLDAP(ポート389)、LDAP over SSL(ポート636)、TLS/StartTLSによる暗号化のいずれかを選択できます。Active Directoryとの接続にも対応しており、設定は環境変数ファイルにサーバーアドレスやBase DN、検索フィルターなどを記述する形式です*7。PHP-LDAP拡張機能の導入が前提になります*7。
LDAPグループとBookStackのロールをマッピングする同期機能も用意されています*7。人事異動や組織変更に伴う権限管理を、社内の認証基盤側の変更に追随させたい場合に活用できます。設定項目は複数の環境変数にわたるため、証明書検証やバインド方式の組み合わせを事前に整理しておくことが望まれます。
構築の実務 — サーバー要件と導入手順
構築を内製で行う場合、PHP 8.2以上に加えてcurl・dom・gd・iconv・mbstring・mysqlnd・openssl・pdo・pdo_mysql・tokenizer・xml・zipといった拡張モジュールの導入が必須になります*6。LDAP認証を使う場合はldap拡張、画像の回転処理にはexif拡張の追加も推奨されています*6。
データベースはMySQL 8.0以上またはMariaDB 10.6以上が必要です*6。加えて、アップデート適用に使うGit、PHP依存関係を管理するComposer v2.2.0以上、Apache・Nginxなど PHP互換のWebサーバーを用意します*6。storageやbootstrap/cache、public/uploadsフォルダへのWebサーバーの書き込み権限も要件に含まれます*6。
これらの要件を満たす設計・構築には、Linuxサーバー運用・データベース管理・Webサーバー設定・認証プロトコルの知識が必要です。目安として、要件定義からLDAP連携を含む本稼働までを1〜2名の体制で数週間単位で見込む事業者もありますが、既存の社内認証基盤の複雑さによって工数は変動します。設定を誤ると、認証不能によるアクセス断や、権限設計の不備による情報漏えいのリスクにつながる点は軽視できません。
構築後の運用保守で必要な体制
BookStackを構築した後は、OS・PHP・データベース・BookStack本体それぞれのバージョン管理が継続的な作業になります。セキュリティパッチの適用が遅れると、既知の脆弱性を突かれるリスクが増すため、更新の適用体制をあらかじめ決めておく必要があります。
バックアップの設計も欠かせない要素です。ナレッジという性質上、データベースとアップロードファイルの両方を定期的に退避させる仕組みが求められます。加えて、ユーザー・ロール・権限設定は組織変更に応じて見直しが必要になるため、恒常的な管理担当を置くかどうかの判断が運用体制の分岐点になります。
自社に該当スキルを持つ担当者が確保できない場合、初期構築だけでなく運用保守まで含めて外部パートナーに委ねる選択肢があります。専門パートナーに依頼した場合は、要件定義・構築・認証連携・保守を一括した体制で進められる一方、内製の場合は担当者の異動や退職が運用継続のリスクになる点が主な違いです。
外注と内製の判断軸
判断軸の一つは、Linuxサーバー・データベース・認証プロトコルの知見を持つ人材が社内に確保できているかどうかです。知見を持つ人材がいない状態で構築を進めると、設定不備によるセキュリティリスクや、稼働後の障害対応の遅延につながりやすくなります。
もう一つの判断軸は、構築後の保守を継続できる体制があるかどうかです。構築だけを内製し、保守を外部に委ねる分業や、構築から保守まで一括して外部パートナーに依頼する形態など、体制の組み方は複数考えられます。自社の人員計画と更新対応の頻度を踏まえて選ぶことが望まれます。
LDAP・SAML2・OIDCといった認証連携は、既存の社内システムとの整合性を取る工程が発生しやすい領域です。社内の認証基盤の仕様を把握したパートナーと連携できれば、設計段階での手戻りを抑えられます。
まとめ:BookStack導入の3つの判断軸
本稿では、BookStackの階層構造・編集機能・検索・権限管理といった基本機能から、SaaS型ナレッジツールとの違い、認証連携、構築・運用の実務までを整理しました。要点を3つに集約すると次の通りです。第一に、BookStackはBook・Chapter・Pageの階層とWYSIWYG/Markdown編集、全文検索、ロールベースの権限管理を備えたセルフホスト型のナレッジ基盤である点です。第二に、データの保管場所を自社の裁量下に置ける一方、サーバー要件を満たす環境の継続的な運用が前提になる点です。第三に、構築・認証連携・運用保守を内製で担うか外部パートナーに委ねるかは、社内の技術体制と保守継続性の見通しによって判断が分かれる点です。
よくある質問
BookStackの利用に契約料はかかりますか。
BookStack自体はMITライセンスで公開されたオープンソースソフトウェアのため、ソフトウェアの利用に契約料は発生しません*2。ただし、稼働させるサーバーの調達・構築・運用にかかる費用は別途必要になります。ライセンス費用の有無と、運用実費の有無は分けて考える必要があります。
既存の社内認証基盤と連携できますか。
BookStackはLDAP・SAML2・OIDCに対応しており、既存の社内認証基盤とのSSO連携が可能です*1*7。LDAPの場合はActive Directoryとの接続にも対応し、LDAPグループとBookStackのロールを紐づける同期機能も用意されています*7。設定は環境変数ファイルへの記述が中心です。
ConfluenceやNotionから移行することは可能ですか。
移行の可否は保有データの形式や量、既存ツールが提供するエクスポート機能によって条件が変わります。BookStackはBook・Chapter・Pageという特有の階層構造を持つため、移行に際してはコンテンツの再整理を伴う場合があります。移行の要件整理から着手すると、進め方を具体化しやすくなります。
権限管理はどこまで細かく設定できますか。
ロールに割り当てる権限に加え、Shelf・Book・Chapter・Pageという各コンテンツ単位で個別に権限を上書きできます*5。BookやChapterの権限は配下に引き継がれますが、Shelfの権限は自動継承されない点に注意が必要です*5。部門をまたぐ公開範囲の制御に活用できます。
構築後の運用保守を外部に依頼することはできますか。
構築だけでなく、OS・PHP・データベースのバージョン管理やバックアップ設計、権限設定の見直しといった運用保守を含めて外部パートナーに依頼する形態は選択肢の一つです。社内に継続的な保守担当を置けない場合、構築から保守までを一括して相談できる体制を検討する価値があります。
著者:テレリモ総研編集部 鈴木 亮佑
ご不明な点はお問い合わせフォームからもご連絡いただけます。
- *1 出典:BookStack「BookStack」(https://www.bookstackapp.com/)
- *2 出典:BookStack「BookStack GitHub Repository」MITライセンス表記(https://github.com/BookStackApp/BookStack)
- *3 出典:BookStack公式サイト機能紹介(https://www.bookstackapp.com/)
- *4 出典:BookStack「Searching Content」(https://www.bookstackapp.com/docs/user/searching/)
- *5 出典:BookStack「Roles and Permissions」(https://www.bookstackapp.com/docs/user/roles-and-permissions/)
- *6 出典:BookStack「Installation」(https://www.bookstackapp.com/docs/admin/installation/)
- *7 出典:BookStack「LDAP Authentication」(https://www.bookstackapp.com/docs/admin/ldap-auth/)