Dufsを使ったファイルサーバーの構築

Dufsとは?

Dufsは、静的ファイル配信やアップロード、検索、アクセス制御、WebDAVサポートなど多機能なファイルサーバーソフトウェアです。

主な機能

  • 静的ファイルの提供
  • フォルダをZIP形式でダウンロード可能
  • ファイルおよびフォルダのドラッグ&ドロップによるアップロード
  • ファイルの作成/編集/検索
  • 復旧可能なセグメントアップロードとダウンロード
  • 認証およびアクセス制御
  • HTTPS対応
  • WebDAVサポート
  • curlでの操作が容易

インストール方法

Dockerを使用してSynologyにインストールします。DufsはCLIベースのツールであるため、Docker CLIでの運用が推奨されます。

  1. Dockerレジストリでdufsを検索し、sigoden/dufsを選択してください。
  2. タグはlatestを使用します(執筆時点ではv0.41.0に対応)。

1. ボリューム設定

Dockerディレクトリ内にdufsという新しいフォルダを作成し、その中にdataというサブフォルダを追加します。

ホストパス コンテナパス 説明
/docker/dufs/data /data ファイル格納用

2. ポート設定

利用可能なポートを確認するために以下のコマンドを使用できます:

# 使用中のポートを確認
netstat -tunlp | grep <ポート番号>

以下のポートマッピングを設定します:

ホストポート コンテナポート
5032 5000

デフォルトでは外部へのポート公開は無効なので、手動で+ボタンから追加してください。

3. 環境変数

環境変数は不要ですが、CLIコマンドで動作をカスタマイズできます。たとえば、/data -Aを使用すると、/dataディレクトリに対する全操作(アップロード、削除、検索など)が可能です。

詳細なCLIオプションは公式リポジトリを参照してください:Dufs CLI Documentation


コマンドラインでのセットアップ

以下はDocker CLIを使用したセットアップ例です。

# 必要なディレクトリを作成
mkdir -p /volume1/docker/dufs/data

# dufsディレクトリに移動
cd /volume1/docker/dufs

# コンテナを起動
docker run --rm -it \
   --name dufs \
   -p 5032:5000 \
   -v $(pwd)/data:/data \
   sigoden/dufs:latest \
   /data -A

または、docker-compose.ymlを使用することもできます。

version: '3'

services:
  dufs:
    image: sigoden/dufs
    container_name: dufs
    ports:
      - "5032:5000"
    volumes:
      - ./data:/data
    command: /data -A

上記の内容をdocker-compose.ymlとして保存後、以下のコマンドで起動します。

# 必要なディレクトリを作成
mkdir -p /volume1/docker/dufs/data

# dufsディレクトリに移動
cd /volume1/docker/dufs

# docker-compose.ymlを配置

# コンテナをバックグラウンドで起動
docker-compose up -d

動作確認

ブラウザでhttp://<Synology_IP>:5032にアクセスすると、Dufsのメインインターフェースが表示されます。

ここではファイルのアップロード、ダウンロード、移動、削除、編集などが可能です。

認証の追加

ユーザー認証を有効化するには、以下のコマンドを使用します。

docker run --rm -it \
   --name dufs \
   -p 5032:5000 \
   -v $(pwd)/data:/data \
   sigoden/dufs:latest \
   /data -a user:pass@/:rw

ブラウザでアクセスすると、ログイン画面が表示されます。正しいユーザー名とパスワードを入力することでアクセスできます。

WebDAVクライアントの接続

RaiDriveなどのWebDAVクライアントを使用して接続可能です。接続後、以前にアップロードしたファイルがリスト表示されます。

タグ: dufs Docker webdav

7月3日 23:30 投稿