Filebrowserによるファイル管理

OrangePiPCシステム内の特定フォルダ管理をAngular-FilemanagerからFilebrowserに移行しました。

インストール

/usr/local/binディレクトリにfilebrowserがインストールされます。

Linux

$ curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash

管理フォルダを指定して起動

$ filebrowser -r /path/to/your/files

Windows

iwr -useb https://raw.githubusercontent.com/filebrowser/get/master/get.ps1 | iex
filebrowser -r /path/to/your/files

データベースファイルの作成

一度任意のフォルダ内でfilebrowserを起動します。

$ filebrowser -a localhost

フォルダ内にfilebrowser.dbが作成されます。起動後"ctl+c”キーで終了させます。

設定ファイルの作成

filebrowser.dbから設定ファイルを作成します。ファイル拡張子はjsonまたはyamlとします。

$ filebrowser config export filebrowser.json

設定ファイルの編集

環境に合わせて各項目を指定します。ポイントは以下の3箇所です。

"scope": "/home/user/files/", システム内の任意のフォルダを指定。
"port": "8090", ポートを指定
"address": "myhome.gw", ドメインネームまたはIPアドレスを指定

設定ファイルのインポート

編集後設定ファイルをデータベースにインポートします。
(設定ファイルを指定しても設定内容が反映されない場合、インポートして対応します)

$ filebrowser config import filebrowser.json

同じLAN内の他の端末からhttp://myhome.gw:8090でアクセスすると /home/user/files/ 内が表示されます。

systemdによるサービス作成

上記filebrowser.dbfilebrowser.json/etc/filebrowser に格納します。

$ sudo mkdir /etc/filebrowser
$ sudo rm filebrowser* /etc/filebrowser

/etc/systemd/system/filebrowser.serviceを作成します。

[Unit]
Description=File browser
After=network.target

[Service]
User=root
Group=www-data
ExecStart=/usr/local/bin/filebrowser -c /etc/filebrowser/filebrowser.json -d /etc/filebrowser/filebrowser.db

[Install]
WantedBy=multi-user.target

サービス起動

$ sudo systemctl start filebrowser

ステータス確認

$ sudo systemctl status filebrowser

サービス全体のリロード

$ sudo systemctl daemon-reload

起動時オートスタート

$ sudo systemctl enable filebrowser

管理ユーザと一般ユーザの細かい設定はブラウザ内で行って下さい。まず管理ユーザadminでログイン、各種権限を制限したユーザを登録、通常はこのユーザでログイン・ファイル管理した方がいいかもしれません。

Dockerhub filebrowser

https://hub.docker.com/r/filebrowser/filebrowser

docker-compose.yml

version: '3'

services:
  filebrowser:
    container_name: filebrowser
    image: filebrowser/filebrowser:v2.15.0-armv7
    restart: unless-stopped
    volumes:
      - /YOUR/SHARED/DIRECTORY:/srv
      - ./database.db:/database.db
      - ./.filebrowser.json:/.filebrowser.json
    network_mode: host
  • 初めに共有ボリュームのdbファイルjsonファイルのセクションを無効にしてdocker-composeを起動
$ docker-compose up -d
  • docker cpコマンドでデフォルトのdbファイルjsonファイルを取得
$ docker cp filebrowser:/.filebrowser.json ./.filebrowser.json
$ docker cp filebrowser:/database.db ./database.db
  • 最後に共有ボリュームのdbファイルjsonファイルのセクションを有効にし、必要であれば .filebrowser.json の設定を変更してdocker-composeを再起動
$ docker-compose up -d

.filebrowser.json

{
  "port": 8081,
  "baseURL": "",
  "address": "",
  "log": "stdout",
  "database": "/database.db",
  "root": "/srv"
}