ken_nogi/NodeSrv/docs/XWiki移行_検討ログ.md
Kenichiro NOGI ce58cb4be4 初回コミット: dev配下(NodeSrv/Pleasanter等)をGitea管理下に統合
GitHub(nextgroup2706/ken_nogi)は今後使わず自社Gitea運用に切替え。
NodeSrvは旧リポジトリの履歴を破棄しファイルのみ統合(Dokploy用サービスアカウントは
別途mygit-admin/NodeSrv.gitに履歴あり)。notepmエクスポート(12GB)とPleasanter
インストーラzip(208MB)はサイズが大きいため.gitignoreで除外。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 15:37:06 +09:00

8.4 KiB
Raw Blame History

XWiki移行 検討ログ

作成日: 2026-08-07 関連ドキュメント: system-architecture.mdv3, system-architecture-executive.mdv2 位置づけ: 施策②「社内ナレッジ・データベースの一本化NotePM→XWiki移行」の詳細検討記録


1. Wikiシステム比較検証

NotePM移行先としてXWikiが既に採用済みsystem-architecture.md 3.3・10章だが、Keycloak SSO対応・AI連携適性・運用負荷の観点で他の自己ホスト型Wiki製品と比較検証した。

項目 XWiki採用 BookStack Wiki.js Docmost Outline
ライセンス LGPL 2.1(無償) MIT無償 AGPL-3.0(無償) AGPL-3.0コア無償SSOは有料EE限定 BSL 1.1(自社利用は無償)
Keycloak SSO ○ 標準対応、設定手順確認済み ○ 標準搭載 ○ Keycloak専用OIDCモジュールあり技術親和性は最高 △ 無償版はSSO不可EE限定 ○ 無償版でOIDC対応可ローカルログイン自体が存在しない設計
AI連携適性MCP/RAG ○ REST APIスクリプティング、900以上の拡張 △ シンプルなREST APIのみ ○ GraphQL API ◎ AI Chat/MCPを標準機能として明記詳細範囲は要確認 ○ 8年の実績があるAPI
リソース消費 やや重めJava/JVM 軽量256MB RAM程度 中程度1GB RAM程度 軽量〜中程度 やや重めPostgres+Redis+S3必須
開発の活発さ2026年8月時点 20年超、活発 活発 停滞リスクあり2026年6月時点でコミット停滞 急成長中の新興プロジェクト 活発
構造化データ・業務アプリ用途 ◎ App Within MinutesPleasanterと役割重複に注意 × × × ×

結論XWiki採用を維持。 Keycloak連携が確認済みであること、20年超の実績、Confluence等からの移行実績の豊富さが決め手。ただし、App Within Minutes機能はPleasanterと役割が重複するため、「Pleasanter業務データ、XWikiドキュメント」と役割分担を明確にしておく。


2. NotePM利用状況分析2026-07-01〜07-31

移行判断材料として、NotePMチームレポートExcelを分析。

全体サマリー

指標
閲覧されたページ数 413オープン398プライベート15
ページ表示(延べ) 3,669回
ページ新規作成/更新 2件38件読み書き比率は約99:1、読み取り中心
アクセスユーザー数 45実個人アカウント40共有機能アカウント5

スペース別利用状況(上位)

004.FIT積算・販売価格算出表と100.ブランドプレゼン資料の2スペースで全表示数の約75%を占める。この2スペースを移行の最優先対象とする。

ユーザー傾向

  • 権限別内訳参照専用ゲスト23ユーザー19オーナー2管理者1
  • 「ネクストグループ参照用」等の共有機能アカウントが実利用の大半を占め、個人アカウントの日常的な利用は限定的
  • アクティブ日数1日以下のユーザーが7名存在全社展開時のアカウント設計の参考情報
  • コメント・リアクション機能はほぼ未使用(コラボレーションではなく「文書ストレージ+検索」としての利用実態)

3. XWikiインスタンススペック

3.1 基本スペックフェーズ別、AWS Lightsail

フェーズ Lightsailバンドル 判断根拠
パイロット30名 24 USD4GB RAM2vCPU80GB SSD XWiki公式の本番運用最小目安4GB RAM推奨に準拠
中規模100名 44 USD8GB RAM2vCPU160GB SSD 50〜200名規模の一般的な目安に準拠
全社350名 84 USD16GB RAM4vCPU320GB SSD 200名以上規模の目安に準拠

2026年6月改定の公式Lightsail料金に基づく。旧料金表より値上げされているため、system-architecture-executive.mdの費用試算は要更新)

3.2 NotePM実データを踏まえた再検証

読み書き比率99:1・低同時接続という軽い負荷傾向が確認できたため、上記スペックは変更なしで妥当と判断(むしろ余裕のある設計)。

未確定事項ディスク容量。今回のレポートは「期間中に閲覧されたページ・ファイル」のみが対象で、NotePM全体の総ページ数・総添付ファイル容量が不明。移行データの総容量が判明次第、SSD容量80GB〜320GBまたはブロックストレージ追加の要否を再確認する。


4. 構築成果物

以下のファイルを作成済み(/mnt/user-data/outputs/に出力済み)。

ファイル 内容
docker-compose.yml XWikiPostgreSQL構成。DokployNode Bへのデプロイ用
.env.example 環境変数テンプレートDBパスワード、ドメイン、JVMヒープサイズ
XWiki構築_LINEWORKS連携_手順書.md Lightsail構築〜XWikiセットアップ〜LINE WORKS⇔Keycloak⇔XWiki SSO連携の手順書チェックリスト

5. LINE WORKS SSO連携アーキテクチャ

[社員] → XWikiアクセス → KeycloakへリダイレクトOIDC
       → KeycloakがLINE WORKSSAML IdPへブローカー
       → LINE WORKSでログイン → SAMLアサーションがKeycloakに返る
       → KeycloakがXWikiにトークン発行 → ログイン完了
  • LINE WORKSはSP-initiated SAMLのみ対応IdP-initiated非対応
  • XWiki側はOIDC Authenticator拡張を使用設定・運用ともにSAMLよりシンプル
  • 詳細はXWiki構築_LINEWORKS連携_手順書.mdを参照

6. ユーザー自動プロビジョニング方針(検討中・未決定)

6.1 判明した制約

  • LINE WORKSのSAMLアサーションには部署・組織情報が含まれない本人確認のみ。Directory APIという別系統のAPIでのみ組織情報を取得可能
  • SmartHR・KING OF TIMEのいずれにも、業務上の「配属先」に相当する情報がないSmartHRは雇用契約・給与計算、KING OF TIMEは勤怠管理が主目的であり、コンテンツアクセス制御に使える粒度の組織情報を持つ設計になっていない

6.2 設計の方向性(合意済みの考え方)

配属先(コンテンツアクセス範囲)と役職(管理権限レベル)は別軸として設計する。

目的 Keycloakでの実装
配属先→コンテンツ権限 グループGroups
役職→管理権限レベル ロールRoles

役職については、SmartHR APIが部署・役職での絞り込み検索に対応しているため、役職データの取得元としては引き続き有力配属先データが無いことが判明しただけで、役職データの利用可否は別問題

6.3 配属先マスタの案(検討中、未決定)

内容 状況
A. Pleasanterに新設 既存PleasanterさくらVPSに配属先マスタテーブルを作成 有力候補として提示済み
B. LINE WORKSの「グループ」機能を代用 Orgunitとは別のLINE WORKS「グループ」機能をDirectory API経由で取得 実際に部署・担当ブランド単位で運用されているか要確認、未検証
C. Keycloakで直接管理 マスタを別途持たず、Keycloakで情シスが直接編集 属人化のリスクありとして参考案に留める

6.4 現在のステータス

この件は保留。社員組織マスタの管理方法について別途検討のうえ、改めて共有される予定。 上記3案はいずれも未決定であり、本ログはあくまで検討過程の記録。


7. 未決事項・次のアクション

  • NotePM移行データの総容量確認 → ディスクサイズ確定
  • 社員組織マスタ(配属先)の管理方法の決定 ※別途相談予定
  • LINE WORKS管理者コンソールでのSAML設定作業要管理者権限
  • Lightsailインスタンスの実構築・デプロイ確認
  • Wiki環境のベース構築に関する詳細相談 ※別途実施予定