平时折腾 VPS 或者家用 NAS 时,你大概率遇到过这些麻烦场景:想给远方的朋友发个几百兆的安装包,开 SFTP 嫌对方配置客户端太繁琐,丢公共网盘又嫌限速甚至有隐私泄露风险;又或者人在外头拿手机,临时需要改一下服务器上的配置文件,连 SSH 敲 vim 费时又费眼。这时候,最爽的解法莫过于给服务器套一个开箱即用的网页版“文件资源管理器”。File Browser 就是专门干这脏活累活的老牌利器:它用 Go 语言编写,纯单一二进制打包,内存占用极小,但功能一点没缩水——不仅自带直观的网页文件列表、支持文件拖拽上传下载与细粒度的多用户权限管控,甚至还直接内置了一个带行号的代码编辑器,随手改完点保存就能直接同步回宿主机磁盘。
我们这篇文章基于官方最新的 v2.63.23 版本实测编写。在动手之前,你得先摸清两个和网上旧教程完全不同的核心事实:第一,新版彻底废弃了曾经满天飞的 admin/admin 默认密码,改成了首次启动时走“快速初始化(Quick Setup)”并在日志里打印一段强随机口令,必须去启动日志里抓;第二,官方已明确公布项目于 2026 年 9 月 1 日正式归档并停止维护,后续不再有安全更新和新版本发布。这意味着拿它在家庭局域网、私有实验室或配合内网穿透自用依然极其顺手稳定,但绝不建议你在没有额外访问控制保护的前提下,把它裸奔暴露在公网里。
成品长这样
部署完成后,你只要用浏览器打开服务端口并完成登录,就能看到如下的图形化文件管理面板。左侧导航栏清晰陈列着根目录入口、新建文件、新建文件夹、个人设置以及存储配额状态条,中间主区域则以清爽的卡片(Mosaic)视图平铺列出你挂载的所有文件。双击文本文件就能无缝唤起内置编辑器,在网页端就能完成查阅和修改。

准备工作
在开始敲命令之前,请确认你已经具备以下几项基础条件:
- 装好了 Docker 与 Docker Compose 的主机:无论是一台便宜的 Linux 云服务器,还是家里的单板电脑、群晖或威联通 NAS 均可。
- 规划好要共享的文件根目录:先想清楚你想把宿主机上的哪个目录开放给网页端管理(本文实战以部署目录下的
./srv为例)。 - 放行宿主机映射端口:官方镜像内默认监听的是 80 端口,本文实操按规范将其映射到宿主机的
18081端口,如果在云服务器上,记得在安全组中放行该端口。 - 把牢网络安全边界:由于官方上游已归档停更,请务必将其部署在内网、VPN 或套有鉴权网关的防护之后,杜绝在公网毫无防护地裸奔。
第一步:Docker Compose 部署
使用 Docker Compose 部署 File Browser 极其省心,核心在于理清数据与配置的三个持久化目录挂载关系。
-
创建工程目录与编排文件
建议为 File Browser 建立一个独立的管理目录,并在里面提前建好存放共享文件、数据库和配置的三个子目录,随后编辑
docker-compose.yml:mkdir -p filebrowser/{srv,database,config} && cd filebrowser nano docker-compose.yml将以下配置完整粘贴到文件中:
services: filebrowser: image: filebrowser/filebrowser:v2.63.23 container_name: filebrowser restart: always volumes: - ./srv:/srv - ./database:/database - ./config:/config ports: - "18081:80" -
在后台拉起容器
保存退出编辑器后,在当前目录直接执行启动命令,让 Docker 开始拉取镜像并在后台启动容器服务:
docker compose up -d -
查看启动日志,捕获首发随机密码
这是最关键的一步。当检测到
/database/filebrowser.db不存在时,程序会自动走 Quick Setup 并为admin账号生成一次性随机密码,你需要立刻通过日志把它找出来:docker compose logs filebrowser在终端滚动的输出里,留心抓取包含
User 'admin' initialized with randomly generated password: <随机串>的这一行日志。把密码复制下来,接着在浏览器访问http://<你的服务器IP>:18081,就能凭账号admin和该随机密码顺利登入系统。
三个挂载目录的职责分工:
./srv:/srv:实际分享的文件本体目录。你在网页端能看到、下载、编辑的文件都放在这里。哪怕你在宿主机底层直接用命令行放文件进去,网页端刷新也能立即识别。./database:/database:系统元数据库。里面会生成并维护单文件数据库filebrowser.db(基于 Bolt DB),所有用户账号、加密密码、权限规则与共享链接全存在里面。日常做系统备份时,必须打包这个数据库;若它丢了,所有账户配置都会归零。./config:/config:启动参数配置区。用于存放settings.json,负责定义端口、默认作用域和数据库路径等系统级参数,与 compose 配合使用。
第二步:从日志里拿管理员口令登录
服务跑起来之后,先别急着在网页里试老教程写的默认密码。从 v2.63.23 实测来看,老版本那种拿 admin / admin 直接登进去的时代已经彻底过去了。当数据库文件不存在时,程序在首次启动会走一段 Performing quick setup,自动创建 admin 管理员账号并配发一串很长的随机初始口令。
这串密码会明明白白打印在启动日志里,格式长这样:User 'admin' initialized with randomly generated password: <随机串>。如果你是用 Docker Compose 跑的,赶紧去敲 docker compose logs filebrowser 把这行字符捞出来;如果是二进制直接跑在终端或 systemd 里,去对应的控制台输出或 journal 里找。拿到口令后,打开浏览器访问你的部署地址(比如 http://127.0.0.1:18081),输入用户名 admin 和这串随机密码就能顺利进入系统。
注意:这串随机口令只会在首次建库的瞬间打印一次,之后再重启服务就不会重复输出了。千万不要随便把这行未脱敏的启动日志截图发群或者丢进公用工单;另外如果第一遍没留神刷掉了日志又没记下口令,或者控制台关太快,网页端就会直接卡在登录门外。

进了后台第一件事,强烈建议去左下角设置里把这个临时密码换成你自己的固定强口令。如果由于容器重建、日志丢失等原因确实没捞到初始密码,或者后续管理员密码忘了,也不用删库重来。File Browser 的所有账号权限全压在一个 Bolt DB 单文件里,我们可以在停服状态下直接调用它的命令行工具强制重置密码。注意必须先停掉正在运行的进程或容器,因为 Bolt DB 运行时会被进程独占锁定:
# 停掉服务后,直接在宿主机用二进制修改数据库
./filebrowser -d ./filebrowser.db users update admin --password 你的新密码
# 查看当前数据库内的用户与权限状态确认无误
./filebrowser -d ./filebrowser.db users ls改完再把容器拉起来,直接拿新密码登录即可,既干脆又省心。
第三步:浏览与在线编辑文件
进入控制台后,默认会落在当前用户的根目录文件列表,界面呈清爽的卡片(Mosaic)网格视图。左侧边栏从上到下排着当前登录用户 admin、我的文件(My files)、新建文件夹、新建文件、全局设置、退出登录以及底部的磁盘空间容量条。
你在宿主机挂载的 ./srv 目录里塞了什么,这里就会毫无延迟地刷出什么。比如我们在宿主机目录里丢进 hello.txt(56 B)和 notes.md(39 B)两个测试文件,刷新网页就能看见它们并排躺在主展示区,文件名、大小一目了然。

对于代码、Markdown 或纯文本日志这类文件,鼠标双击卡片就能直接唤出内置的文本编辑器,根本不用先下载到本地改好再回传。内置编辑器支持行号、语法高亮和字号调整,顶部栏带醒目的保存按钮;在里面敲两行笔记,点击右上角的保存,修改就会瞬间写回宿主机磁盘里的实体文件,非常适合拿来随手调配置或者改改备忘。
除了当在线阅读器和编辑器用,顶栏还常驻了搜索框、下载全部以及本地文件上传入口。后续如果需要多个人协同使用,你可以在设置里单独新建用户。每个账号不仅可以指定独立的 Scope(即只允许它看到 /srv 下的某一个子目录作为家目录),还可以在 Admin / Execute / Create / Rename / Modify / Delete / Share / Download 等一系列细粒度权限位上打勾或关掉。比如配一个只拥有 Download 权限、没有 Delete 和 Modify 的受限账号,丢给别人当纯拉取资料的只读共享盘,用起来非常安全省心。
踩坑实录
1. 新版已无默认口令,随机密码仅在初次启动日志打印一次
旧教程里广为流传的 admin/admin 默认账号密码在当前版本已彻底废弃。首次启动且数据库文件不存在时,程序会自动执行快速初始化(quick setup),生成一个高强度随机口令并直接输出在控制台日志中(形如 User 'admin' initialized with randomly generated password: <随机串>)。这行信息只会打印一次,若以后台模式启动且未留存日志,将无法登录。遇到该情况要么清空数据目录重置,要么必须在停服状态下通过 CLI 命令 filebrowser -d /path/to/filebrowser.db users update admin --password 新密码 强制重置密码(底层采用单文件 Bolt DB,运行中数据库被独占锁定,带进程修改会直接报错)。
2. 官方项目已归档收尾,不宜直接裸奔暴露在公网环境
容器启动日志中已明确打印终止维护公告:File Browser 项目已于 2026 年 9 月正式归档(archived),上游不再发布新功能,也不再提供任何安全漏洞补丁。该程序非常适合家庭 NAS、内网穿透自用或局域网轻量共享,但鉴于无安全修复的现状,严禁将其端口未经防护裸露在公网环境;若确实需要在外网访问,强烈建议前置配置具有认证防护的反向代理(如 Cloudflare Access、Authelia、Tailscale 或带 HTTP Basic Auth 的 Nginx),或选用持续维护的替代方案。
3. 二进制、容器内部与宿主机映射三处端口极易混淆
排查访问连通性时需厘清三层端口:官方独立二进制默认监听 8080 端口;官方 Docker 镜像内部默认由 settings.json 指定监听 80 端口;而在 docker-compose.yml 中暴露的则是宿主机映射端口(如 18081:80)。若自行挂载外部配置文件并修改了 port 字段,宿主机映射规则的容器端端口必须同步调整,否则极易出现服务正常运行却因映射错位导致网页无法打开的假死现象。
4. 单文件 Bolt DB 承载全部元数据,损坏会导致账号与权限全失
File Browser 采用轻量嵌入式 Bolt DB(filebrowser.db)持久化所有用户信息、密码哈希、用户作用域(Scope)、界面设定与文件共享链接。虽然 /srv 目录中的实际文件安全独立,但一旦 filebrowser.db 因断电、容器异常退出或磁盘异常发生损坏,所有的用户分组与精细化权限位(Admin/Execute/Modify/Share 等)将全部丢失。因此日常运维千万不能只同步数据文件目录,必须将数据库文件纳入定时冷备计划。
升级与备份
数据备份与灾难恢复
系统的核心状态仅由两个文件构成:单文件数据库 filebrowser.db 与启动配置文件 config/settings.json。执行备份时,建议在服务低峰期或短暂停服状态下,直接将包含上述两项的 database/ 和 config/ 目录打包保存;实际业务文件 srv/ 按普通宿主机目录定期增量备份即可。灾难恢复流程极为简单:在目标宿主机上重新拉起标准 docker-compose.yml,并将备份的 database、config 与 srv 挂载回原路径启动容器,系统用户、原有权限体系与分享状态即可无缝还原。
容器升级操作
日常版本更新标准流程为修改 docker-compose.yml 内的镜像标签,随后执行 docker compose pull && docker compose up -d --force-recreate 完成容器重建。鉴于官方已宣布归档且不再推进版本迭代,当前的升级动作主要对应迁移部署、宿主机底座重装或替换加固型自建镜像场景,无需频繁跟踪上游大版本发布。