ブログ

ryuzeeによるブログ記事。不定期更新

オープンソースのTrelloクローン Libreboard

Trelloは、https://www.trello.com で提供されているオンラインのタスク管理サービスで、利用している人も多いと思います。僕自身も以前書いたSCRUM BOOT CAMP THE BOOKの執筆の進捗管理や、Regional Scrum Gathering Tokyoのタスク管理などで使っていました。

このTrelloのオープンソース版のクローンが登場したので紹介します。

Libreboard

Libreboardは、こちらで開発が進められているオープンソースソフトウェアでMITライセンスで提供されています。2014年の頭に開発が始まり、最初の開発ペースは早くありませんでしたが、昨年末くらいから急激に開発速度が上がってきているようです。

技術的には、NodejsのフレームワークであるMeteor(メテオ)を利用しています。

Meteorの詳細については以下を参照すると良いでしょう。

インストール

今回もいつものようにVagrantを使って環境を構築します。なおLibreboardの配布物の中にDockerfileが含まれているのでそちらを使っても簡単に試せるはずです。

いきなりですが、Vagrantfileは以下のような感じにします。OSはUbuntu 14.04を利用します。起動時にShell Provisionerを使って必要なパッケージのインストールやアプリケーションの配置、初期化を行っています。これでVagrantを起動すると、ポートフォワードの設定がしてあるので、母艦側で、http://localhost:3000にアクセスすることで、Libreboardが表示されるはずです。

VAGRANTFILE_API_VERSION = "2"

$script = <<SCRIPT
#!/bin/bash
sudo apt-get update
sudo apt-get install -y git curl nodejs nodejs-dev npm supervisor

sudo chmod 777 /opt
if [ ! -d /opt/libreboard ] ; then
  sudo -H -u vagrant -s bash -c 'git clone https://github.com/libreboard/libreboard.git /opt/libreboard'

fi
if [ ! -f /usr/local/bin/meteor ] ; then
  sudo -H -u vagrant -s bash -c 'curl https://install.meteor.com/ | sh'
fi

echo "creating directory..."
sudo -H -u vagrant -s bash -c 'mkdir -p /opt/libreboard/.meteor/local/isopacks'
sudo -H -u vagrant -s bash -c 'chmod -R 777 /opt/libreboard/.meteor/local/'

echo "setting supervisor..."
echo "[program:libreboard]" > /etc/supervisor/conf.d/libreboard.conf
echo "directory=/opt/libreboard" >> /etc/supervisor/conf.d/libreboard.conf
echo "command=/usr/local/bin/meteor" >> /etc/supervisor/conf.d/libreboard.conf
echo "autorestart=true" >> /etc/supervisor/conf.d/libreboard.conf
echo "redirect_stderr=true" >> /etc/supervisor/conf.d/libreboard.conf
echo 'environment=HOME="/home/vagrant"' >> /etc/supervisor/conf.d/libreboard.conf
service supervisor restart
echo "provisioning process completed..."
SCRIPT

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "opscode-ubuntu-14.04"
  config.vm.network "forwarded_port", guest: 3000, host: 3000
  config.vm.network "private_network", ip: "192.168.33.10"
  config.vm.provision "shell", inline: $script
end

動作イメージ

実際の画面は以下のような感じになります。

以下はサインアップ・ログイン画面。

サインアップを選択すると、新規アカウントの作成画面が表示されるので、適当にアカウントを作成します。

初回ログイン時はWelcome Boardと呼ばれるデフォルトのボードだけが作られています。

Trelloと同じように新しくボードを作成し、レーンを作りタスクを追加していけばOKです。 以下の例では3つのレーンを作ってその中にそれぞれタスクが状態別に配置されています。 もちろんTrelloと同じようにドラッグ&ドロップでタスクを移動したり、順番を変えることもできます。

タスクをクリックして表示される詳細画面もTrelloと同じです。(ただし、まだチェックリストの機能などはありません)

まとめ

ざっくり見てきましたが、ではすぐにTrelloを捨ててこれに移行できるかというとそれは時期尚早な感じです。 ただし開発のペースが上がってきているようなので、早晩Trelloにある機能はどんどん揃っていくのではないかと思います。なので動向を抑えておくと良いかと思います。 また、Meteorを使った開発の参考になるかもしれません。

アジャイルコーチングやトレーニングを提供しています

株式会社アトラクタでは、アジャイル開発に取り組むチーム向けのコーチングや、認定スクラムマスター研修などの各種トレーニングを提供しています。ぜひお気軽にご相談ください。

詳細はこちら