オープンソースのオンライン共同編集ツールEtherpadの紹介

はじめに

鹿児島らぐというLinux User Groupで月イチを目処に勉強会を行っています。現在は主にオンラインで活動しており、オープンソースのソフトウェアをVPSにセルフホストしてそれを利用してオンライン勉強会をしています。

オンライン勉強会ではいくつかのオープソースのツールをセルフホストして利用しています。ビデオカンファレンスソフトウェアのGalene,オンライン共同編集ツールのEtherpadを主に利用しています。Galeneについては以前にこちらの記事で紹介しました。

今回はEtherpadの紹介を行います。

オンライン共同編集ツールについて

オンライン共同編集ツールはみんなで1つのドキュメントを編集し、共有できるものです。Google Docsなどを使っている方が多いのではないかと思います。

今回はLinux User Groupで利用するので、なるべくオープンソースでセルフホストできる、かつウェブブラウザで利用できるものを使いたいところです。そのようなソフトウェアとしては、LibreOffice Online,Etherpad, CryptPadHackMD1などがあります.いくつか試してみましたが、DebConfで使われていたのもあり、現在はEtherpadを使っています。

以前はGobbyを使っていた時期もありました。Gobbyはサーバ側もクライアント側も軽量で気に入っていましたが、利用には専用クライアントが必要なため利用者の負担が大きいと感じて、ウェブブラウザで利用できるツールが増えていたのもありEtherpadへ移行しました。

Etherpadについて

Etherpadは当初etherpad.comでオンラインサービスとして提供されていました。その後、Googleに買収された後Apache License 2.0ライセンスとして公開されて誰でもホストできるようになりました2。オープンソースになった後はEtherpad Foundationが設立され、現在もこのコミュニティで開発が続いています。

Etherpad Lite

ここまでのEtherpadはJavaとScalaで書かれていましたが、現在はNode.jsで書き直されたEtherpad Liteが開発されています。Etherpad LiteはEtherpadの機能に加え、APIでの操作や他のサイトへの埋め込み、プラグインへの対応などもされています。導入はpnpmやDockerを使い比較的簡単に導入できます。現在はこれがEtherpadと呼ばれるようになっているようです.

Etherpad Desktop

最近はEtherpad Desktopやモバイルアプリケーションのクライアントの開発も行われています。このクライアントを使うと各リモートEtherpadへ接続して編集したり、ローカルでEtherpadを起動することもできるようです。Linux版デスクトップを少し試しましたが、リリースされたばかりということもあり未だバグが多いなと感じます3。Etherpadクライアントについてはこれからに期待したいです。

Etherpad-Go

Etherpad-GoというEtherpadのGo言語での移植版も開発されています。シングルバイナリで実行でき、高速な起動時間、低メモリ使用量でお手軽に利用できそうです。既存のEtherpad-Liteデータベースからデータ移行の方法も紹介されていますし、ローカルで少し試した範囲では問題なさそうですが、まだexperimentalなので本番環境では使っていません。

Etherpadを試す

ここでは一番利用が簡単なEtherpad-goで試してみます。

以下のリポジトリの最新のReleasesから自分の環境に合ったバイナリをダウンロードします。Linux amd64/arm64, Windows amd64, macOS amd64/arm64のバイナリが提供されています。今回試した環境はDebian GNU/Linux sid amd64です。

$ wget https://github.com/ether/etherpad-go/releases/download/v0.6.6/etherpad-go-linux-amd64 \
       https://github.com/ether/etherpad-go/releases/download/v0.6.6/checksums.txt
$ sha256sum --ignore-missing -c checksums.txt
etherpad-go-linux-amd64: OK
$ chmod u+x etherpad-go-linux-amd64
$ ./etherpad-go-linux-amd64

9001番ポートで起動するので、ウェブブラウザで http://localhost:9001/ にアクセスします。

現在はPadとspreadsheetが利用できます。「New Pad」や「New spreadsheet」をクリックすることで新規のページが作られ、編集画面になります。任意の名前付きのPadを作りたい場合は「Open pad by name」に任意の名前を入力して「Open」ボタンを押します。

PadはURLを共有して複数人同時に編集できます。編集内容は編集者ごとに色分けされ、リアルタイムに反映されます。

鹿児島らぐでのEtherpadの利用例

鹿児島らぐではEtherpad (Lite)をさくらのVPSでホスティングして毎月のミーティングごとにPadを作成し、ミーティング関連URLの共有や出席者のメモ、発表の管理などをしています。

一番助かっているのは発表の管理です。イベント開始時に全員に簡単な自己紹介をしてもらったり、近況タイム時に発表の有無などを聞くのですが、このときにそれぞれの発表者に「名前」「発表タイトル」「関連URL」などをPadへ書いてもらっています。一人で進行をしながらメモをするといっぱいいっぱいになりミスったり聞き間違いをしてしまったりしますが、本人に書いてもらえば確実です。

イベント終了後、Etherpadからファイルにエクスポートして保存しています。

おわりに

鹿児島らぐでのEtherpadの利用例を紹介しました。Google Docsなどのツールを使うのが手軽ですが、以前に比べて導入の手間も楽になっているのでEtherpadも試してみてはいかがでしょうか? まずは公開インスタンスで試してみるのがお手軽です。以下のURLからお試しください。

脚注

  1. LILO&東海道らぐのミーティングではミーティング中にMackMDでメモを取り、ダウンロードしたMarkdownファイルを共有しています。 ↩︎
  2. EtherpadはGoogle Waveに統合されるとなっていましたが、Waveはリリースしてすぐに開発の中止が発表されてしまいました。個人的におもしろいサービスだったのですが……。 ↩︎
  3. 現在リリースされている最新のv0.4.4のAppImageや.debは起動しなかったりします。pnpmでは動作するのでパッケージングでミスっていそうです。 ↩︎