File Browser(项目名 filebrowser)是一个轻量级的 Web 文件管理器,使用 Go 语言编写,以单个可执行文件的形式为服务器上的指定目录提供美观易用的浏览器端文件管理界面。用户无需 SSH 登录服务器或配置 FTP/SFTP 客户端,即可直接在浏览器中完成文件上传、下载、预览、在线编辑、重命名、移动、删除等操作。它以零依赖、单文件、极速部署著称,是为服务器目录快速添加 Web 文件管理能力的最便捷工具之一。
项目背景与定位
服务器上的文件管理传统上依赖 SSH 命令行或专用的 FTP/SFTP 客户端工具,操作繁琐,对没有技术背景的用户极不友好。功能完整的私有云盘方案(如 Nextcloud)虽然提供了 Web 文件管理,但需要 PHP 运行时、数据库、Web 服务器等大量外部依赖组件,部署与运维工作量较大。File Browser 定位为轻量、无依赖、即启即用的 Web 文件管理工具:一行命令启动,无需任何数据库或额外服务,非常适合快速为特定目录添加 Web 访问界面,或作为 NAS 上的简易文件管理前端使用。
核心功能
- 完整文件操作:目录树导航、文件与文件夹上传(支持拖拽批量上传整个文件夹)、下载(支持单文件与多文件打包为 zip 下载)、重命名、移动、复制、删除、新建文件夹等日常文件管理操作一应俱全。
- 在线预览与编辑:内置基于 CodeMirror 的代码编辑器,可直接在浏览器中打开编辑文本文件、代码文件、配置文件并保存到服务器;支持图片在线预览、PDF 文档查看、视频和音频文件的在线播放。
- 文件分享链接:可为任意文件或文件夹生成带访问密码和到期时间的外链,向他人临时授权下载访问,无需为其创建专属账户,适合临时文件传递场景。
- 多用户与细粒度权限:支持创建多个用户账户,每个用户可被限制只能访问指定的根目录范围(Scope),并可分别配置上传、创建、修改、删除、分享等操作的允许与禁止,实现精细的权限边界控制。
- 可选命令执行(Shell):管理员可选择开启内置终端功能,允许授权用户在浏览器中直接执行 Shell 命令,类似轻量版 Web 终端。此功能默认禁用,开启时需严格限制具备该权限的用户范围,存在一定安全风险。
- 文件搜索:在用户可访问的目录范围内按文件名关键词搜索,快速定位目标文件。
- 深色主题与多语言:提供亮色与深色主题切换,界面支持包括中文在内的多种语言,适合面向多样化用户群体部署使用。
技术架构
File Browser 后端使用 Go 编写,前端基于 Vue.js 框架开发构建。前端静态资源与后端二进制通过 Go 的 embed 机制打包为单一可执行文件分发,实现真正意义上的零外部依赖单文件部署。配置信息与用户账户数据存储在本地的 bbolt(BoltDB)嵌入式键值数据库文件中,完全不需要安装任何独立数据库服务。整体内存占用极低,通常仅在 20~50 MB 范围,启动速度近乎即时,适合在任何服务器上作为附属组件长期运行而不增加明显资源负担。
部署与配置要点
- 二进制直接运行:下载对应平台的可执行文件,通过 --root 参数指定要管理的目录路径,--port 参数指定监听端口,命令行直接启动。首次运行会自动初始化默认管理员账户(用户名和密码均为 admin),登录后应立即前往设置界面修改默认密码。
- Docker 部署:官方提供 Docker 镜像,将配置数据库文件和要管理的文件目录以卷挂载方式指定即可运行,支持通过环境变量传入配置参数,便于在 Docker Compose 等容器编排环境中统一管理。
- systemd 服务化:在 Linux 服务器上通过编写 systemd 单元文件配置开机自启动,建议以具有受限文件权限的普通用户身份运行,而非 root 用户,以降低潜在的安全风险。
- 反向代理与 HTTPS:强烈建议通过 Nginx 或 Caddy 配置 HTTPS 加密访问,尤其是开放到公网的场景;若部署在 URL 子路径下(如 /files/),需要在启动参数中设置 --baseurl 以确保前端资源路径正确。
- 根目录权限边界:File Browser 进程对 root 目录下的所有文件拥有读写操作权,因此 root 目录应严格限制在实际需要通过 Web 管理的目录范围内,切勿直接挂载服务器根目录或包含系统关键文件的路径。
- 代理认证模式:除账号密码登录外,还支持代理认证模式,由前置反向代理通过请求头传入已认证的用户名,适合集成到统一认证体系中的使用场景。
典型使用场景
- 为家庭 NAS 或服务器上的共享文件目录提供简易 Web 浏览器,让不熟悉命令行的家庭成员也能自助管理文件。
- 为开发服务器上的上传目录、日志目录或静态资源目录提供快速的 Web 查看与下载入口,代替反复 SSH 查看。
- 向临时合作者一次性共享文件,通过带密码和有效期的分享链接授权访问,无需为其专门创建账户。
- 在局域网内部署,供局域网成员通过浏览器访问管理共享存储,无需配置任何 FTP 或 SMB 服务。
- 作为内容管理人员更新静态网站文件的轻量操作界面,简化内容更新流程。
与同类工具对比
- 对比 Nextcloud:File Browser 部署极简(单文件、无数据库)、资源极低,但仅专注本地文件管理操作,不提供文件版本历史、实时协作编辑、日历、联系人、应用市场等 Nextcloud 提供的完整私有云功能。
- 对比 Alist:Alist 侧重聚合多种云存储驱动并生成外链索引;File Browser 侧重对本地单一目录的完整双向管理(上传、编辑、删除),两者定位不同且可配合使用。
- 对比 Seafile:Seafile 提供强版本控制与团队文件同步协作能力,但部署复杂度和资源消耗远高于 File Browser;File Browser 胜在轻量简单、零门槛上手。
优缺点小结
优点是单文件零依赖、部署极简极快、资源占用极低、界面清晰美观易用、多用户细粒度权限管理、支持在线预览和编辑。缺点是缺乏文件版本历史追踪、实时多人协作编辑、移动端原生客户端同步等高级功能;大文件上传在反向代理超时配置不当时容易失败;开启命令执行功能存在安全风险需谨慎。对于需要快速为服务器目录添加 Web 文件管理能力的场景,File Browser 几乎是最省时省力的选择。