🚀 使用 Docker Compose 部署 FileBrowser(Web 版文件管理器)
🚀 使用 Docker Compose 部署 FileBrowser
FileBrowser 是一款基于现代浏览器技术的 WEB 版多用户文件管理器,它可以通过浏览器对服务器上的文件进行管理,支持文件修改、添加、删除和分享,甚至可以作为一个轻量级的网盘使用。
📝 项目简介
FileBrowser 提供了简洁直观的 Web 界面,让您无需记忆复杂的命令行指令,就能轻松管理服务器文件。核心特点包括:
- 跨平台管理:通过浏览器随时随地访问和管理文件
- 多用户支持:可创建多个用户并分配不同权限
- 文件分享:支持生成文件分享链接,方便文件分发
- 在线预览:支持文本编辑、图片查看,甚至可在线播放 .mp4 视频
- 权限控制:精细的权限管理,可控制上传、下载、删除等操作
🔧 部署前准备
在开始部署前,请确保您的环境满足以下要求:
系统环境要求 - 操作系统:支持 Linux、Windows、macOS - Docker 引擎:版本 20.10+ - Docker Compose:版本 2.0+ - 硬件资源:至少 512MB 内存,1GB 可用存储空间
环境检查
# 检查 Docker 服务状态
systemctl status docker
# 检查 Docker 版本
docker --version
# 创建部署目录
mkdir -p /home/compose/filebrowser && cd /home/compose/filebrowser
⚙️ 配置 Docker Compose
创建目录结构
mkdir -p srv config db
创建 docker-compose.yml 文件
#version: "3"
services:
filebrowser:
container_name: filebrowser # 容器名称,便于管理(如停止/查看日志)
image: filebrowser/filebrowser:latest # 官方最新镜像(稳定可靠)
restart: always # 容器退出后自动重启(保障服务长期可用)
# depends_on:
# - mariadb
volumes:
#- /home/compose/filebrowser/config.json:/etc/config.json
#- /home/compose/filebrowser/db/database.db:/etc/database.db
# 1. 文件管理目录:本地 ./srv → 容器 /srv(上传的文件存这里,核心挂载!)
- ./srv:/srv
# 2. 配置文件:本地 ./config/config.json → 容器 /config/settings.json(加载自定义配置)
- ./config/config.json:/config/settings.json
# 3. 数据库文件:本地 ./db/database.db → 容器 /database.db(存储用户/权限数据)
- ./db/database.db:/database.db
#旧形式&新的引用目录下
#- /home/compose/filebrowser/srv:/srv
#- /home/compose/filebrowser/config/config.json:/config/settings.json
#- /home/compose/filebrowser/db/database.db:/database.db
# environment:
# - DB_HOST=mariadb
# - DB_USER=admin
# - DB_PASS=admin
# - DB_NAME=notepad
# - DB_PORT=3306
# - PGID=1000
# - PUID=1000
# - TZ=Aisa/Shanghai
ports:
# 端口映射:主机 3000 → 容器 80(通过主机 3000 端口访问 Web 界面)
- "3000:80"
关键配置说明
- 镜像选择:使用官方 filebrowser/filebrowser:latest 镜像
- 端口映射:3000:80 将容器内 80 端口映射到宿主机 3000 端口
- 数据持久化:
- ./srv:/srv:文件存储目录(FileBrowser 的根目录)
- ./config/config.json:/config/settings.json:配置文件
- ./db/database.db:/database.db:数据库文件
- 重启策略:always 确保服务异常时自动恢复
创建配置文件
在 config/config.json 文件中填入以下内容:
{
"port": 80,
"baseURL": "/",
"address": "0.0.0.0",
"locale": "zh-cn",
"log": "stdout",
"database": "/database.db",
"root": "/srv",
"config": "/config/settings.json",
}
配置文件说明:设置中文界面(zh-cn)、指定数据库路径和根目录。
🚀 启动与验证
启动服务
docker compose up -d
验证服务状态
# 检查容器状态
docker ps
# 查看服务日志
docker compose logs -f
访问 Web 界面
1. 打开浏览器,访问 http://你的服务器IP:3000
2. 使用默认账号密码登录(用户名:admin,密码:admin)
🔌 基础配置与使用
首次登录配置 1. 登录后立即修改默认密码,提升安全性 2. 在设置中可切换界面语言为中文
文件管理操作 - 上传下载:支持拖拽上传和批量操作 - 在线编辑:直接编辑文本文件 - 文件分享:生成分享链接,设置有效期
用户权限管理 1. 创建新用户并分配特定目录权限 2. 设置不同的操作权限(查看、上传、删除、修改等)
# 命令行添加用户示例(需进入容器执行)
docker exec -it filebrowser filebrowser users add username password --perm.admin
🔌 基础配置与使用2
FileBrowser 界面简洁,核心功能围绕 “文件管理” 与 “用户权限”,新手可从以下操作入手:
1. 核心文件操作(上传 / 下载 / 编辑)
(1)上传文件 / 文件夹
- 点击界面左上角「上传」按钮,选择本地文件 / 文件夹,即可上传到当前目录(默认保存在
./srv目录); - 支持拖放上传:直接将本地文件拖到浏览器界面,自动开始上传。
(2)下载文件 / 文件夹
- 选中文件 / 文件夹,点击界面上方「下载」按钮,自动打包为 ZIP 格式下载(文件夹默认打包,文件直接下载)。
(3)编辑文本 / 代码文件
- 右键点击文本文件(如
.txt、.md、.py),选择「编辑」,打开内置编辑器(支持代码高亮、换行符设置); - 编辑完成后点击「保存」,修改会实时同步到服务器
./srv目录。
2. 创建与管理文件夹
- 点击界面左上角「新建文件夹」,输入文件夹名称(如
docs、images),即可在当前目录创建文件夹; - 支持文件夹重命名 / 删除:右键点击文件夹,选择「重命名」或「删除」,操作前会提示确认(避免误删)。
3. 用户与权限管理(进阶)
默认仅 admin 管理员用户,可创建子用户并分配权限(如给家人 “只读” 权限):
- 点击界面右上角「设置」图标(齿轮图标)→ 选择「用户管理」;
- 点击「新建用户」,填写信息:
- 用户名:自定义(如
guest); - 密码:设置密码(如
Guest@123!); - 根目录:限制用户访问的目录(如
./srv/guest,需先创建该文件夹); - 权限:选择「只读」(仅允许下载,禁止上传 / 删除)或「读写」(全权限);
- 用户名:自定义(如
- 点击「创建」,新用户即可通过
http://服务器IP:3000登录,且仅能访问指定目录。
🛠️ 维护与管理
日常维护
# 服务启停
docker compose down
docker compose up -d
# 数据备份
tar -czf filebrowser-backup-$(date +%Y%m%d).tar.gz .
# 服务更新
docker compose pull
docker compose down
docker compose up -d
日志监控
# 查看实时日志
docker compose logs -f
# 监控资源使用
docker stats filebrowser
🐛 常见问题排查
1. 无法访问 Web 界面
- 现象:浏览器访问 http://IP:3000 无响应
- 解决:
```bash
# 检查端口占用
netstat -tulpn | grep 3000
# 检查防火墙设置 ufw allow 3000 ```
2. 文件权限问题 - 现象:无法上传或修改文件 - 解决:检查挂载目录的权限,确保容器用户有读写权限
3. 容器启动失败
- 现象:容器状态为 Exited
- 解决:
bash
# 查看详细错误日志
docker compose logs
4. 中文显示乱码
- 解决:确保配置文件中 locale 设置为 zh-cn
按照本教程,您应该已经成功部署了 FileBrowser 文件管理系统。它的直观界面和丰富功能将极大简化服务器文件管理作业,让您享受便捷的 Web 端文件操作体验。