はじめに
OSSを利用したWiki構築の取り組みです。
目的とゴール設定
業務で扱う機会が少ない「システム構築の技術」を習得し、アウトプットすることを主目的としています。
- 目的(メイン)
- システム構築の一連のプロセスを経験し、具体的な技術的知見(Docker、DB、設定など)を獲得する。
- ゴール
- OSSを用いて、実用可能なWiki環境を構築し、完成させる。
- 共有事項
- 構築過程で遭遇した技術的な課題と解決策を参考情報として共有する。
候補OSSの初期比較検討と仮選定
| OSS名 | 特徴 |
|---|---|
| ・Outline | モダンなUI/UX、Notionに近い使い勝手、チーム向けに特化。Reactベース。 |
| ・wiki.js | 多機能で柔軟な構成、多数の認証方式に対応。Vue.jsベース。 |
| ・GROWI | 日本発の多機能Wiki。Markdownに加え、Notionのような構造化も可能。 |
| ・MediaWiki | Wikipediaで使われている技術。機能は豊富だが、デザインが古め。 |
| Outline | wiki.js | GROWI | MediaWiki | |
|---|---|---|---|---|
| UI/UX | モダン。 | 多機能。 やや古さが残る。 |
機能的。 設定が複雑。 |
古典的。 |
| 技術スタック | Node.js, React, PostgreSQL |
Node.js, Vue.js, 複数DB |
Node.js, React, MongoDB |
PHP, MySQL |
| 構築難易度 | 低(シンプル) | 中(多機能ゆえ) | 中(MongoDB導入が必要) | 高(PHP環境構築が必要) |
【結論】 上記比較の結果、Outlineを検証のメインOSSとして仮選定し、構築を進めていきます。
技術スタックの決定
| 項目 | 採用技術 | 理由 |
|---|---|---|
| 対象OSS | Outline | 上記比較検討の結果より |
| 実行環境 | Docker / Docker Compose | 依存関係の分離と管理 |
| DB | PostgreSQL | Outlineの必須要件であるため。 |
Outlineについて
概要
チームのドキュメント、議事録、仕様書、日報などを整理し、簡単に検索・共有するためのプラットフォーム。自分のサーバーでデータを管理できるため、セキュリティやプライバシーを重視する組織に適している。
特徴
- モダンで高速なエディタ: Markdown記法に対応しており、直感的で快適にドキュメントを作成できる。リアルタイムでの共同編集も可能。
- 階層的なドキュメント管理: ドキュメントを入れ子構造で整理できるため、情報が探しやすくなっている。
- 強力な検索機能: すべてのドキュメントを横断して高速に検索できる。
- 外部サービス連携: Slackと連携して通知を受け取ったり、FigmaやLoomなどのコンテンツを埋め込んだりすることができる。
- セルフホストとオープンソース: 自分のインフラ上で運用するため、データを完全にコントロールできる。また、必要に応じてカスタマイズも可能。
公式サイト