【号外】gtsteffaniak/filebrowserはなぜ開発現場の「秘密兵器」なのか?導入とサンプルコード
gtsteffaniak/filebrowser は、ブラウザベースでファイルを操作できるツールです。一言で言えば、GitHubリポジトリのWebファイルブラウザ機能を、あなた自身のサーバーで簡単に実現できるようにしたものです!
このツールは、開発の様々な局面で、まるで秘密兵器のように活躍します。
テスト環境でのファイル共有
開発中のアプリケーションのテストデータや、一時的な成果物をチームメンバーやQA(品質保証)担当者にサッと共有したいとき、FTPクライアントやクラウドストレージの設定なしに、URL一つでアクセスしてもらえます。
設定ファイルの一元管理
複数のマイクロサービスやサーバーの設定ファイル(YAMLやJSONなど)を、Webブラウザから素早く確認・編集できます。サーバーにSSHでログインする手間が省けますよ。
ログファイルの即時確認
本番環境やステージング環境のログディレクトリに設置すれば、ブラウザから最新のログファイルをダウンロードしたり、内容を確認したりできて、トラブルシューティングの初動が格段に速くなります。
安全なファイルアクセス
認証機能やパーミッション設定が組み込まれているため、特定のユーザーやチームだけがファイルにアクセスできるように制限できます。機密性の高いファイルも、必要最小限のアクセス権で管理できます。
リモートでの簡単な操作
外部からファイルをアップロード・ダウンロード・削除したい場合に、煩雑なVPN接続や専用クライアントなしに、Webインターフェース経由で安全に操作できます。
導入は非常に簡単です。このツールは、Go言語で書かれているため、依存関係が少なく、単一のバイナリファイルとして動作するのが大きな魅力です。
プロジェクトのGitHubリリースページから、あなたのサーバーのOSとアーキテクチャに合ったバイナリファイルをダウンロードします。
ダウンロードしたファイルを、任意のディレクトリに配置します。
# 例: Linuxの64bit版をダウンロードし、/usr/local/binに配置
wget https://github.com/gtsteffaniak/filebrowser/releases/download/v2.24.0/filebrowser_linux_amd64.tar.gz
tar -xzvf filebrowser_linux_amd64.tar.gz
sudo mv filebrowser /usr/local/bin/
# データベースファイル(設定を保存する場所)を初期化
filebrowser config init --database /path/to/my/data.db
コマンド一つでサーバーを起動できます。--portでポート番号、--rootでWebブラウザで表示したいファイルのルートディレクトリを指定します。
# 8080ポートで、カレントディレクトリをルートとして起動
filebrowser --port 8080 --root .
ソフトウェアエンジニアなら、Dockerでサクッと試したいですよね。これが最も速く、手軽な導入方法です!
プロジェクトのルートディレクトリに docker-compose.yml を作成します。
version: '3.8'
services:
web_file_manager:
image: filebrowser/filebrowser:latest # 公式のDockerイメージ
container_name: file_manager_service
# 8080ポートでアクセス可能にする
ports:
- "8080:80"
# ファイルを保存するディレクトリをコンテナ内にマウント
volumes:
# ホストマシンの './shared' ディレクトリがWebブラウザのルートになる
- ./shared:/srv
# 設定ファイルとデータベースを永続化
- ./config/filebrowser.db:/database.db
environment:
# デフォルトのユーザー名とパスワードを設定
- FB_USERNAME=devuser
- FB_PASSWORD=devpass
- FB_BASEURL=/files
# データベースファイルの場所を指定
- FB_DATABASE=/database.db
# コンテナが落ちた際に自動で再起動
restart: always
docker-compose.yml がある場所で、以下のコマンドを実行するだけです。
# 必要なディレクトリを作成
mkdir -p shared config
# サービスを起動
docker-compose up -d
ブラウザで http://localhost:8080/files にアクセスし、設定したユーザー名とパスワード(例
devuser/devpass)でログインすれば、/shared ディレクトリの中身がすぐにブラウザで操作できます!