QNAP NASでSVNサーバを構築する

QNAP NASにSVNを構築する手順のメモです。

1.SVNのインストール
SVNはipkgでインストールできます。

ipkg update
ipkg install svn

2.リポジトリの作成
svnadminコマンドを使ってリポジトリを新規作成します。

cd /share/Repository/svn
create repos

3.認証設定
デフォルトでは第三者からリポジトリの内容を閲覧できてしまうため、
設定ファイルを修正します。

cd repos/conf
vi svnserve.conf
anon-access = none
auth-access = write
password-db = passwd

ユーザ名とパスワードを必要な分だけ定義します。

vi passwd
[users]
ユーザ名 = パスワード

なお、このパスワードは平文です!
取り扱いには十分注意してください。
これで、承認されたユーザのみリポジトリの閲覧やコミットができるようになります。

4.SVNデーモンの起動
リポジトリの認証設定が済んだので、SVNデーモンを起動します。

svnserve -d -p ポート番号 -r リポジトリのルートパス

-dオプションはSVNをデーモンとして起動するという意味です。

-pオプションでポート番号を指定していますが、
指定が無い場合はデフォルトの3690番ポートが使われる仕様になっています。

-rオプションはリポジトリのルートです。
これを省略すると、Linuxのルートディレクトリ「/」が指定されます。
リポジトリURLの簡略化とセキュリティの観点から-rオプションを指定して
ディレクトリの参照範囲を限定するのが得策です。

5.再起動後にSVNデーモンを有効にする
この手順は再起動時にSVNデーモンを
起動する必要が無ければ飛ばして構いません。

起動時に実行されるシェルにSVNデーモンを起動するコマンドを追加します。

vi /share/MD0_DATA/.qpkg/autorun/autorun.sh
/opt/bin/svnserve -d -p ポート番号 -r リポジトリのルートパス

svnserveはフルパスで指定します。
こうしないと「パスが見つからないよ!」となって起動できません。

以上でSVNサーバの設定は完了です。
設定が終わったらクライアントからチェックアウトします。

svn checkout svn://サーバホスト/repos clone

無事にチェックアウトできたら成功です。

もし、SVNデーモンを停止したい場合はsvnserveプロセスをkillします。
(pkillやpgrepコマンドが無いので、従来どおりの方法でkillします)

[~] # ps | grep svnserve
12345 admin       xxx S   /opt/bin/svnserve -d -r /share/MD0_DATA/Repository/svn/
23456 admin       xxx S   grep svnserve
[~] #kill 23456

この方法は、サーバとクライアントにsvn独自のTCP/IPプロトコルを用いる方法で、
平文のままデータのやり取りが行われます。
暗号化通信させたい場合はSSHやHTTPS経由でやり取りする必要があります。
逆にLAN環境のみからのアクセスの場合はこれだけでも十分でしょう。

■参考文献
Subversion