手書き風ドローイングツール「Excalidraw」をセルフホストで試す
実はexcalidrawはObsidianプラグインで普段から使用している。
ただ、チームで使うような場合に、全員にObsidianをインストールさせるというのは現実的ではないと感じる(それがチームの方針というならば、ありだとは思うが、Obsidianを使いこなすオーバーヘッドがでかいと個人的には感じる)
あとObsidianはパブリックなサービスも行っているが、これをチームで使うのは情報管理の観点でも厳しいと感じる(サービスはあまり使ってはいないので間違っているかもしれないが)。
恐らくその場合はExcalidraw++を使うのだと思うが、有償になる。
現実的には、
- VS Codeプラグイン
- セルフホスト
が無難、というかほぼVS Codeプラグインでの利用になるかと思うが、今回はセルフホストで使う場合を少し試してみようと思う。
GitHubレポジトリ
Excalidraw
オープンソースの手描き風スタイルのバーチャルホワイトボード。コラボレーション可能でエンドツーエンド暗号化
美しい手描き風の図やワイヤーフレームなど、自由に作成できます。
機能
Excalidrawエディター(npmパッケージ)には以下の機能が含まれています:
- 💯 無料&オープンソース。
- 🎨 無限に広がるキャンバスベースのホワイトボード。
- ✍️ 手描き風スタイル。
- 🌓 ダークモード対応。
- 🏗️ カスタマイズ可能。
- 📷 画像サポート。
- 😀 図形ライブラリ対応。
- 👅 多言語対応(i18n)。
- 🖼️ PNG、SVG、およびクリップボードへのエクスポート。
- 💾 オープンフォーマット - .excalidraw jsonファイルとして図をエクスポート。
- ⚒️ 幅広いツール - 長方形、円、ダイヤモンド、矢印、線、フリードロー、消しゴムなど。
- ➡️ 矢印の結合とラベル付き矢印。
- 🔙 元に戻す / やり直し機能。
- 🔍 ズームとパン対応。
Excalidraw.com
excalidraw.comでホストされているアプリは、Excalidrawで構築できるものを最小限に示すショーケースです。このアプリのソースコードもリポジトリに含まれており、次の機能があります:
- 📡 PWAサポート(オフラインで動作)。
- 🤼 リアルタイムのコラボレーション。
- 🔒 エンドツーエンド暗号化。
- 💾 ローカル優先対応(ブラウザに自動保存)。
- 🔗 共有リンク(読み取り専用リンクとしてエクスポートして他者と共有可能)。
これらの機能は、将来的にnpmパッケージのプラグインとして追加予定です。
ドキュメント
レポジトリ内にDockerfileとdocker-compose.yamlがあるので、これで起動すれば良さそうではあるが、docker-compose.yamlの最終更新は3年前。
Dockerfileも3ヶ月前。
ただDockerイメージは更新されている様子なので、これを使うのが良さそう。
docker runで起動。デフォルトは5000番ポートが使用されていたが、自分の環境では埋まっているので、35000番ポートに変えた。とりあえず--rm
で。
docker run --rm -dit --name excalidraw -p 35000:80 excalidraw/excalidraw:latest
ブラウザでアクセスすると普通に使える
日本語もいける(XiaolaiというCJK全部に対応したフォントみたい)
ただし、いくつか使えない機能がある
- リアルタイムコラボレーション
- 共有自体はできなくはない。
- がリアルタイムではない。誰かが更新したとしてもすぐには反映されず、どうもセッションを終了するとリロードで更新されるのがわかるという感じ
- AI機能
- ここは完全に動かない、クラウドサービスのみのように思える
- カスタマイズ要素はなさそう
まあローカルで建てたとしても、保存もできなさそう(エクスポートしてインポートするしかない)なので、そこまで便利になる感はなさそうかなぁ。
レポジトリ内に.excalidrawファイルを含めておいて、あとVS Codeプラグインをインストールする設定も入れておいて、ってのがやはり現実的な感はある。