0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

filebrowserの導入メモ

Posted at

filebrowserの導入メモ。

インストール手順は公式サイトより。

dockerも初めてなので、その導入から。
※OSは debian10 busterを使用。

以下のサイトを参照した。

  1. パッケージの導入。
  2. aptのパッケージインデックスを更新。
  3. Docker の公式 GPG 鍵を追加
  4. 安定版(stable)リポジトリをセットアップ
  5. Docker Engine のインストール
console.log
  481  sudo apt-get install ca-certificates curl gnupg lsb-release
  490  curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  491  echo   "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
  492  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  493  cat /etc/apt/sources.list.d/docker.list
  494  sudo apt-get update
  495  sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
  496  docker run hello-world

hello-worldコンテナが実行できていれば導入は完了。

docker pull でイメージが取得を取得する。(実行時のユーザーはこのサイトの利用者とした)

実行時ユーザーはこのサイトの利用者とした。

console.log
  764  sudo groupadd docker
  765  sudo usermod -aG docker $USER

filebrowserを導入する。

filebrowserのimageを取得する。
※いきなり公開は怖いのでlocalhost:8080(127.0.0.1:8080)で動かす。

※ダウンロードに必要なdockerのアカウントは作成する。

docker pull でイメージが取得を取得する。

console.log
  766  docker pull filebrowser/filebrowser

実行時ユーザーは'pi'の情報を取得する。

$ id pi
uid=1000(pi) gid=1000(pi) groups=1000(pi),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),109(netdev),998(docker)
$

データの格納フォルダと設定フォルダとログフォルダを作成する。
※logはうまく機能しないが、機能するときに備えて作成した。

mkdir /home/pi/filebrowser/data
mkdir /home/pi/filebrowser/config
mkdir /home/pi/filebrowser/log
touch /home/pi/filebrowser/config/filebrowser.db
touch /home/pi/filebrowser/config/.filebrowser.json

.filebrowser.jsonに設定を記述する。
※JSONは改行を含むとエラーになるため、改行を除去したもので作成する。(下記の例)
※また機能しているかどうかは不明である。
/home/pi/filebrowser/config/.filebrowser.json

{"port": 80,"baseURL": "","address": "","log": "/log","database": "/database.db", "root": "/data"}

以下の操作で起動を確認する。(先に確認したuidとgidを'-u'の引数に指定)
'--name'でコンテナに名称をつけることで、扱いが楽になる。

/usr/bin/docker run \
--name filebrowser \
-v /home/pi/filebrowser/data:/data \
-v /home/pi/filebrowser/log:/log \
-v /home/pi/filebrowser/config/filebrowser.db:/database.db \
-v /home/pi/filebrowser/config/.filebrowser.json:/.filebrowser.json \
-u 1000:1000 \
-p 127.0.0.1:8080:80 \
filebrowser/filebrowser

http://localhost:8080/』で閲覧を確認する。

失敗したりしたときは、コンテナが残るので、以下のサイトを参照してコンテナを都度削除した。

docker ps -a 
docker rm `docker ps -a -q`

systemdに登録をする。

『/usr/lib/systemd/system/filebrowser.service』を作成して、以下の内容で編集して保存する。
以下のサイトからいただいて修正した。

[Unit]
Description=filebrowser for docker container
Requires=docker.service
After=docker.service
[Service]
ExecStart=/usr/bin/docker run --name filebrowser -v /home/pi/filebrowser/data:/data -v /home/pi/filebrowser/log:/log -v /home/pi/filebrowser/config/filebrowser.db:/database.db -v /home/pi/filebrowser/config/.filebrowser.json:/.filebrowser.json -u 1000:1000 -p 127.0.0.1:8080:80 filebrowser/filebrowser
ExecStop=/usr/bin/docker stop -t 2 filebrowser
ExecStopPost=/usr/bin/docker rm -f filebrowser
[Install]
WantedBy=default.target

サービスの更新や起動、再起動は以下より行った。

systemctl daemon-reload
systemctl start filebrowser
systemctl restart filebrowser

apatch2のリバースプロキシに組み込んで、セキュリティ対策のためにbasicauthを追加して公開する。

<IfModule mod_ssl.c>
  <VirtualHost _default_:8443>
     ServerName hogehoge.com
     SSLEngine on
     SSLCertificateFile /etc/secure_key/hogehoge.com/cert.pem
     SSLCertificateKeyFile /etc/secure_key/hogehoge.com/privkey.pem
     SSLCertificateChainFile /etc/secure_key/hogehoge.com/chain.pem
     #Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
     ErrorLog /var/log/apache2/filebrowser_error_log
     CustomLog /var/log/apache2/filebrowser_access_log combined env=!no_log
     <IfModule proxy_module>
       ProxyRequests Off
       <Location />
         AuthType Basic
         AuthName "Protected site"
         AuthUserFile /etc/apache2/.htpasswd
         #Require user basic
         Require valid-user
       </Location>
       ProxyPass / http://127.0.0.1:8080/
       ProxyPassReverse / http://127.0.0.1:8080/
     </IfModule>
   </VirtualHost>
 </IfModule>

https://hogehoge.com:8443』でアクセスできることを確認する。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?