============================
UnboxFTPD 日本語ドキュメント
============================

概要
====

UnboxFTPD は、 FTP サーバ機能を提供する Django アプリケーションです。
Django のプロジェクトにインストールしてすぐに利用することができます。

ライセンス
==========

修正 BSD ライセンスです。詳細は LICENSE を参照してください。

インストール
============

UnboxFTPD は Python 2.5/2.6 の環境で開発、動作確認を行っています。
また、以下のサードパーティモジュールが必要です。事前にインストールを
行ってください。

* `Django`_ 1.0 or higher
* `pyftpdlib`_ 0.5.1 or higher

.. _`Django`: http://www.djangoproject.com/
.. _`pyftpdlib`: http://code.google.com/p/pyftpdlib/

ダウンロードしたソースコードのアーカイブを展開して setup.py のある
ディレクトリに移動し、以下のコマンドを実行します。

::

  $ python setup.py install

または、 unboxftpd ディレクトリを Django のプロジェクトディレクトリ
にまるごとコピーします。

プロジェクトの settings.py の INSTALLED_APPS に unboxftpd を追加します。
データベースへテーブルを追加するために、 syncdb コマンドを実行してください。
インストールは以上です。

FTP サーバへユーザを追加する
============================

UnboxFTPD は、 Django フレームワークに標準で含まれている認証機構を
ユーザ認証に利用しています。既存の auth ユーザ以外のユーザ名、パスワードを
利用する場合は、Django の管理画面で事前にユーザを追加しておきます。

管理画面の unboxftpd の項目から FTP ユーザグループの追加を選択し、グループ名、
グループのホームディレクトリ、パーミッションを入力して保存します。
それぞれの入力項目の役割は以下の通りです。

:グループ名: 管理者の識別用、利用しません。
:ホームディレクトリ: FTP で接続した際にユーザが利用するホームディレクトリ
:パーミッション: ホームディレクトリに対するユーザのパーミッション

次に FTP ユーザの追加を選択し、ユーザと FTP ユーザグループをドロップダウン
から選択して保存します。

FTP サーバを起動する
====================

プロジェクトの manage.py スクリプトから起動することができます。
以下のコマンドを実行してください。

::

  $ python manage.py runftpd

デフォルトでは、ホストとポートは 127.0.0.1:21 で起動します。コマンドの書式を
見るには、以下のコマンドを実行します。

::

  $ python manage.py help runftpd

デーモンとして実行するには、 --daemonize オプションを指定します。

操作ログを閲覧する
==================

Django の管理画面の FTP ログから、アップロード、ダウンロード、削除操作のログを
閲覧することができます。

また、 Django の配信フィードフレームワークを利用して、 Atom/RSS フィードでログを
閲覧することもできます。

日本語環境で利用する
====================

UnboxFTPD はシステムの文字コードが UTF-8 である環境を想定しているため、
日本語のファイル名、ディレクトリ名を扱うことができます。

Windows 環境での動作は現在想定していません。 Ubuntu などの 
Linux ディストリビューション、または MacOSX で動作させることをお勧めします。

ホームディレクトリで特殊な名前を利用する
========================================

FTP ユーザグループのホームディレクトリのディレクトリパスには、以下の特殊な
名前を利用することができます。

:<username>: auth のユーザ名(username)

ウェブサイト
============

http://bitbucket.org/tokibito/unboxftpd/

謝辞
====

UnboxFTPD を開発する上で必要となった Python および、サードパーティモジュールの
開発者の方々に感謝します。
