Closed4
Outlineを試してみる

試してみる
NotionのOSS版の1つであるOutlineを試してみる。
セルフホスト&同時編集できるWikiとしては一番良さそうなので。
残念ながら公式のHelm Chartはなさそう。
Issueが立っていて第3者が作成したChartが紹介されているが、そこまで良さそうに見えない(失礼)。
公式のDockerイメージと必要な環境変数のサンプルはあるので、それを元に作業していくのが良さそうだ。
必要なリソースとしては、Postgres, Redis, S3(MinIOでも可), 認証用のIdP(OIDC)ぽい。

Postgres, Redis, S3, IdPの準備する
- Postgres: 専用のDB&Userを作成しておく https://zenn.dev/dekimasoon/scraps/4bb4abecd16a87
- Redis: Dragonflyを立てておく https://zenn.dev/dekimasoon/scraps/5ffcefe3b73126
- S3: Bucketとアクセス用のUser & アクセスキーを作成しておく
- IdP: Cognito User Poolを作成してClientを作っておく
という感じで準備を行った。
何度かエラーになりつつも進む。ハマった点。
- DragonflyとOutlineで使っているBullの相性が良くない。公式の回避策があったのでこちらで回避。 https://docs.bullmq.io/guide/redis-tm-compatibility/dragonfly
- OIDCの設定が間違っていた際に発生したエラーレスポンスを手前に立てているCloudFrontがキャッシュしてしまう。Invalidationした。今後キャッシュ関連で問題が出ないと嬉しい。
- S3の権限設定に関する公式のドキュメントが不明瞭。結局以下のような感じで通った。自分がちゃんとS3の設定を理解していないせいだと思われる
- BucketPublicAccessBlockは全てtrueにする(公式ドキュメントではfalseにしろと書いてあるような気がする)
- BucketCorsConfigurationは公式ドキュメントに従う
- IAMPolicyも公式ドキュメントに従う
- 環境変数の
AWS_S3_ACL=private
は削除する
そんなこんなで起動。

スクショだと見栄えが悪いけど、見た目の印象は良い。
使ってみて最大の問題点は、日本語検索がまともにできないこと。
Issueが立っている。これは結構悲しい。致命的と言える。

公式のHelm Chartが無いためインストールはやや面倒だが問題なくいけるはず。
以下メリット・デメリットの整理。
メリット
- リアルタイムで同時編集できて、入力もしやすい
- リスト、テーブル、コード、mermaid.jsのダイアグラムなど最低限の入力形式はサポート
- SSOが簡単に設定できる
- 画像やファイルのアップロードもお手軽。S3にも対応
デメリット
- 日本語の検索がいまいち。基本的に動かない前提での利用になりそう
- Notionのようなデータを定義して管理する、みたいなことはできない
まとめ
- 検索がいまいちなのが致命的。そんなにドキュメント入れないのでインデックスを使わないLike検索モードとかの切り替えがあったら嬉しかった。
- リアルタイムで同時編集できるのは嬉しいので、振り返りとかで使っていきたい。
このスクラップは2024/03/19にクローズされました