Ubuntu Weekly Recipe

第210回 SparkleShareで自分専用のDropboxサービスを立ち上げる

この記事を読むのに必要な時間:およそ 3 分

大半の読者はUbuntuOneDropboxといったオンラインストレージサービスを使っているのではないでしょうか。しかしながら,これらのサービスには,容量という制約が付きものです。

そこで,容量を気にすることなくオンラインストレージサービスを使うために,SparkleShareというソフトウェアを使って,自分でサービスを立ち上げてしまいましょう。

SparkleShareとは

SparkleShareは,⁠Gitを使ったファイル共有サービスのクライアント」です。

Monoで作られたこのソフトウェアは,共有ディレクトリに放り込まれたファイルを,GitサーバーにSSH越しでpushし,他のクライアントから行われた変更点をpullします。

つまり先ほど「サービスを立ち上げる」と表現しましたが,サービス自体はGitサーバーが提供するのです。このため,Gitリポジトリさえ用意し,SSH経由でアクセスできれば,サーバー側は何でもかまいません。

もちろん,GitoriusGithubといった,他のGitサービスをストレージとして使うこともできます

SparkleShare-Dashboardを使えば,サーバーにSparkleShareのウェブインターフェースを用意することもできます。Androidマーケットには,SparkleShare用のクライアントもあります。このため,SparkleShareをインストールしていない環境でも,ファイルにアクセス・ダウンロード可能です注1)⁠

注1
ただし,現時点でウェブ・Androidからはファイルの閲覧とダウンロードだけ可能です。アップロードはできません。

SparkleShareのインストール

SparkleShareは,Ubuntu 11.10には0.2.5が用意されています。ただ,若干古いので,PPAにPreciseと同等の0.6.0を用意しました。

SparkleShareを使いたいクライアント側で,以下のようにインストールしてください。

$ sudo add-apt-repository ppa:cosmos-door/sparkleshare
$ sudo apt-get update
$ sudo apt-get install sparkleshare

先日リリースされたばかりの最新版を使いたい場合は,公式のドキュメントにしたがってビルドすると良いでしょう。

ビルドに必要なパッケージは,以下のコマンドで導入できます。

$ sudo apt-get build-dep sparkleshare

インストールが終わったら,以下のコマンドを実行するとセットアップダイアログが立ち上がります図1)⁠

$ sparkleshare start

図1 セットアップダイアログ

図1 セットアップダイアログ

メールアドレスはイベントログへの記録と,ログ画面のユーザーアイコンをGavaterからとってくるためだけに使うので適当な値を入れておいてもいいでしょう。

使い方のダイアログを確認したら,右上のアプリケーションインジケーターにアイコンが表示されます図2)⁠

図2 オレンジ色のアイコンがSparkleShare

図2 オレンジ色のアイコンがSparkleShare

ホームディレクトリの.config/sparkleshare以下に,設定したメールアドレス名のSSHの公開鍵と秘密鍵が作成されます。

なお,0.6.0は.ssh/configに勝手にIdentityFileを設定します。他のSSHサーバーへのアクセスに影響が出るかもしれませんので,設定内容を各自で確認してください。

サーバーの準備

ディスク領域を十分確保したサーバー側には,GitとOpenSSHをインストールします。

$ sudo apt-get install git openssh-server

必要に応じて,/etc/ssh/sshd_configでポート番号を変える,ufwでファイヤーウォールを設定するといった作業を行ってください。

最後に,クライアントからアクセスしファイルを保存するための共有ディレクトリを作成します。クライアントで使用するユーザーからアクセスできる場所に作成してください。

今回はさらにクライアントからのアクセスに専用のユーザーを使うため,新規ユーザーも作成しています。既存のユーザーを使う場合は,公開鍵の追加以降だけでもかまいません。

# アカウントの作成
$ sudo adduser --disabled-password git
$ sudo cd /home/git
$ sudo mkdir .ssh
$ sudo touch .ssh/authorized_keys
$ sudo chmod 700 .ssh
$ sudo chmod 600 .ssh/authorized_keys

# 公開鍵の追加
# クライアントで作成した,以下のファイルの内容をコピーしてください。
# ~/.config/sparkleshare/sparkleshare.メールアドレス.pub
$ sudo vi .ssh/authroized_keys

# 共有ディレクトリの作成
# 今回はホームディレクトリの下にTestProjectの名前で作成しています。
$ sudo git init --bare TestProject
$ sudo chown -R git.git .

サーバー側の設定はこれで完了です。

最後にクライアント側で,サーバーを追加します。

画面右上のSparkleShareアイコンから"Add Hosted Project..."を選択してください図3)⁠

図3 Githubなどのサービスもここから選択可能です

図3 Githubなどのサービスもここから選択可能です

アドレスは「ユーザー名@サーバーのアドレス:ポート番号」で指定します。指定しない場合,ユーザー名はgit,ポート番号は22が使われます。

リモートパスはサーバーに作成した共有ディレクトリのパスです。今回はgitユーザーのホームディレクトリに作っているのでTestProjectを指定しました。

Addボタンをクリックすればクライアント側のホームディレクトリにあるSparkleShareディレクトリの下に共有ディレクトリが同期されます。

インジケーターの「TestProject」を選択すれば,ファイルブラウザーが開きますので,適当なファイルを放り込んでみてください。

同様にインジケーターの「最近のイベントログを開く」を選択すればファイルを追加していることが確認できます。

さらに,端末から~/SparkleShare/TestProjectに移動して,"git log"を実行すれば,gitとしてコミットされている様子がわかるでしょう。

クライアント側の同期サービスを常に有効にするためには,クライアントPCにログインするたびに最初に実行したsparkleshare startコマンドを再度実行する必要があります。

常用する場合は,画面右上の歯車ボタンから「自動起動するアプリケーション」を選択し,コマンドを登録しておくと良いでしょう。

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。

コメント

コメントの記入