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>
138 lines
8.4 KiB
Markdown
138 lines
8.4 KiB
Markdown
# XWiki移行 検討ログ
|
||
|
||
作成日: 2026-08-07
|
||
関連ドキュメント: `system-architecture.md`(v3), `system-architecture-executive.md`(v2)
|
||
位置づけ: 施策②「社内ナレッジ・データベースの一本化(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 Minutes(Pleasanterと役割重複に注意) | × | × | × | × |
|
||
|
||
**結論: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 USD/4GB RAM/2vCPU/80GB SSD | XWiki公式の本番運用最小目安(4GB RAM推奨)に準拠 |
|
||
| 中規模100名 | 44 USD/8GB RAM/2vCPU/160GB SSD | 50〜200名規模の一般的な目安に準拠 |
|
||
| 全社350名 | 84 USD/16GB RAM/4vCPU/320GB 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` | XWiki+PostgreSQL構成。Dokploy(Node B)へのデプロイ用 |
|
||
| `.env.example` | 環境変数テンプレート(DBパスワード、ドメイン、JVMヒープサイズ) |
|
||
| `XWiki構築_LINEWORKS連携_手順書.md` | Lightsail構築〜XWikiセットアップ〜LINE WORKS⇔Keycloak⇔XWiki SSO連携の手順書+チェックリスト |
|
||
|
||
---
|
||
|
||
## 5. LINE WORKS SSO連携アーキテクチャ
|
||
|
||
```
|
||
[社員] → XWikiアクセス → Keycloakへリダイレクト(OIDC)
|
||
→ KeycloakがLINE WORKS(SAML 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環境のベース構築に関する詳細相談 ※別途実施予定
|