以前にも紹介しましたが、軽量で動作するので結構役立ちます。マウントしたりするのでなければSamba代わりとしても十分使えるのではないでしょうか。

LXDコンテナ内にセットアップ
LXDコンテナ内で下記スクリプトを実行します。Tailscale serveでhttps化していますが、既存設定があったとしてもそれを壊さないようにしています。また、外部ポートは3201に変更しています。
コンテナ内なので/(ルート)をマウントしていますが、環境に応じて変更してみてください。
#!/bin/bash
set -e
# ── カラー出力 ────────────────────────────────────────────────────────────────
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; CYAN='\033[0;36m'; NC='\033[0m'
info() { echo -e "${CYAN}[INFO]${NC} $*"; }
success() { echo -e "${GREEN}[OK]${NC} $*"; }
warn() { echo -e "${YELLOW}[WARN]${NC} $*"; }
error() { echo -e "${RED}[ERROR]${NC} $*" >&2; exit 1; }
# ── 0. ユーザー名・パスワードを入力 ──────────────────────────────────────────
prompt_credentials() {
echo ""
echo -e "${CYAN}╔══════════════════════════════════════════════════════╗${NC}"
echo -e "${CYAN}║ File Browser + Tailscale Serve セットアップ ║${NC}"
echo -e "${CYAN}╚══════════════════════════════════════════════════════╝${NC}"
echo ""
while true; do
read -r -p "👤 管理者ユーザー名を入力 (空Enterで 'admin'): " FB_USERNAME
FB_USERNAME="${FB_USERNAME:-admin}"
if [[ "$FB_USERNAME" =~ ^[a-zA-Z0-9_-]+$ ]]; then
success "ユーザー名を設定しました: ${FB_USERNAME}"
break
else
warn "ユーザー名は英数字・ハイフン・アンダースコアのみ使用できます。再入力してください。"
fi
done
echo ""
echo -e "${YELLOW}[WARN]${NC} パスワードは12文字以上で設定してください。"
echo ""
while true; do
read -r -s -p "🔑 パスワードを入力 (12文字以上): " FB_PASSWORD
echo ""
if [[ ${#FB_PASSWORD} -lt 12 ]]; then
warn "パスワードが短すぎます(${#FB_PASSWORD}文字)。12文字以上で入力してください。"
continue
fi
read -r -s -p "🔑 もう一度入力してください: " FB_PASSWORD2
echo ""
if [[ "$FB_PASSWORD" == "$FB_PASSWORD2" ]]; then
success "パスワードを設定しました。"
break
else
warn "パスワードが一致しません。もう一度入力してください。"
fi
done
echo ""
}
prompt_credentials
# ── 1. バイナリをインストール ──────────────────────────────────────────────────
info "File Browser をインストールしています..."
curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash
success "インストール完了"
# ── 2. DB・設定ディレクトリを作成 ─────────────────────────────────────────────
info "設定ディレクトリを作成しています..."
mkdir -p /var/lib/filebrowser
# ── 3. 設定ファイルを作成 ──────────────────────────────────────────────────────
info "設定ファイルを作成しています..."
cat > /etc/filebrowser.json <<'EOF'
{
"port": 8080,
"baseURL": "",
"address": "127.0.0.1",
"log": "stdout",
"database": "/var/lib/filebrowser/filebrowser.db",
"root": "/"
}
EOF
success "設定ファイル: /etc/filebrowser.json"
# ── 4. DB 初期化 ──────────────────────────────────────────────────────────────
info "データベースを初期化しています..."
filebrowser config init --config /etc/filebrowser.json
filebrowser users add "${FB_USERNAME}" "${FB_PASSWORD}" --perm.admin \
--config /etc/filebrowser.json
success "管理者ユーザーを登録しました: ${FB_USERNAME}"
# ── 5. systemd サービス登録 ───────────────────────────────────────────────────
info "systemd サービスを登録しています..."
cat > /etc/systemd/system/filebrowser.service <<'EOF'
[Unit]
Description=File Browser
After=network.target
[Service]
ExecStart=/usr/local/bin/filebrowser --config /etc/filebrowser.json
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now filebrowser
success "filebrowser サービスを起動しました"
# ── 6. Tailscale Serve(外部3201 → 内部8080、既存設定は保持)────────────────
info "Tailscale Serve を設定しています..."
if ! tailscale serve status 2>/dev/null | grep -qE 'https://[^ ]+:3201'; then
tailscale serve --bg --https=3201 http://127.0.0.1:8080
sleep 2
fi
TAILSCALE_URL=$(tailscale serve status 2>/dev/null \
| grep -E '^https://.+:3201' \
| awk '{print $1}')
# ── 完了メッセージ ─────────────────────────────────────────────────────────────
echo ""
echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${GREEN} ✅ File Browser セットアップ完了${NC}"
echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo ""
echo -e " 🔐 認証情報:"
echo -e " ユーザー名 : ${FB_USERNAME}"
echo -e " パスワード : (入力した値)"
echo ""
echo -e " 🌐 アクセスURL:"
echo -e " Tailscale : ${TAILSCALE_URL:-'URL取得失敗 → tailscale serve status で確認'}"
echo -e " ローカル : http://127.0.0.1:8080"
echo ""
echo -e " 🔒 アクセス制限:"
echo -e " LAN からのアクセス : 不可 (127.0.0.1バインド)"
echo -e " Tailscale経由 : 可 (tailnet only、外部ポート3201)"
echo ""
echo -e " 📋 管理コマンド:"
echo -e " ログ確認: journalctl -u filebrowser -f"
echo -e " 再起動: systemctl restart filebrowser"
echo -e " 停止: systemctl stop filebrowser"
echo -e " serve確認: tailscale serve status"
echo ""
systemctl status filebrowser --no-pager
echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
日本語化する
インストール後、ユーザー名とパスワードを入力してログインしたら、「Settings」の「Profile Settings」で日本語メニューに変更出来ます。

ユーザーごとにアクセス可能なフォルダを指定したり権限を変更出来ます。


