5.2 KiB
5.2 KiB
2026-09-03 工作日志
file.xpcool.com 文件下载站上线(Filebrowser)
- 需求:/data/share 文件经 file.xpcool.com 提供下载;仅下载 + 访问控制 + 临时分享。
- 方案:Filebrowser 容器(127.0.0.1:10880→80,restart unless-stopped)+ 宿主机 nginx 反代(80→301→443)。证书 file.xpcool.com_bundle.crt/.key 已上传至 /data/nginx/ssl/file.xpcool.com/。
- 关键安全点:/data/share 以
:ro只读挂载 /srv —— 文件系统层面禁止任何写入;数据目录 /data/filebrowser/database(属主改容器 user uid=1000=lighthouse)。 - DNS:file.xpcool.com → 193.112.118.168(用户加记录)。
- SSH 通道:22025 曾禁+密码禁;用户重新绑定密钥后以
CentOS.pem(RSA)→xxcool 登录成功(root 被拒)。本机经 HTTP 代理 127.0.0.1:65195 可 CONNECT 443 但 22025 不通(502),需安全组放行直连。 - 大坑记录(filebrowser 新版 v2.3x):
- 不再默认 admin/admin——全新 db 首次启动生成随机密码,仅打印在容器日志(
docker logs filebrowser找 "initialized with randomly generated password")。 - db 是 bbolt 非 sqlite(sqlite3 读报 "file is not a database")。
- CLI
users update走本地 HTTP/需服务停止操作 db,运行时直连 db 报Error: timeout(文件锁);经 API PUT /api/users/1 改密码始终 400(invalid data type,需完整对象且字段严格)。 - 镜像默认以
user(uid 1000) 运行(非 root),宿主挂载目录须 chown 1000 否则写库 permission denied。 - 镜像 entrypoint 即 filebrowser:docker run 传参勿重复
filebrowser前缀。 - ⚠️ filebrowser 官方项目已于 2026-09-01 归档(日志 NOTICE:停止发布与安全修复),已知问题见其 security/advisories;有分叉 FileBrowser Quantum 可关注。
- 不再默认 admin/admin——全新 db 首次启动生成随机密码,仅打印在容器日志(
- 对外验证通过:公网 https://file.xpcool.com 登录 → API 列目录返回两个安装包(精密智控平台 1.0.0/1.0.1,各 ~94MB)。注意 filebrowser 对
HEAD /返回 404(无害,浏览器 GET 正常)。 - admin 初始密码:
8iXK_m4z7TAHbiMQ(重置后日志生成值;API 改密失败未改),待用户网页登录后自改。locale 默认 en,网页改 zh-cn。 - 运维要点:容器重建后如需找回密码看日志;/config 匿名卷保存 settings.json(port 80/root /srv/db 路径);旧 db 备份 /data/filebrowser/database/filebrowser.db.bak.*。
- 部署脚本/说明:nginx conf 模板保留在
.workbuddy/tmp/file.xpcool.com.conf(scp 至 /tmp 后 sudo cp 到 /data/nginx/conf.d/ 并 reload)。 - 账号管理补充:API 建号/改密不可用(POST/PUT
/api/users均 400 "invalid data type",含最小 body 与 GET roundtrip,判定归档版 users 管理 API 受限)。结论:改密/建只读账号/语言切换一律走网页 UI(admin 登录后 设置→用户管理),CLI/API 勿再尝试。当前仅 admin 一账号。 - 迁移到 FileBrowser Quantum(v1.5.5-stable,晚间完成):镜像
gtstef/filebrowser:stable(60MB 含 ffmpeg),容器 fbq:127.0.0.1:10881→80,restart unless-stopped;挂载/data/share:/srv:ro+/data/filebrowser-q:/home/filebrowser/data(config.yaml+database.db+tmp 缓存全在此,chown 1000:1000=lighthouse)。nginx 反代已切 10881。旧容器filebrowser(原版 10880)已 stop 保留回滚。- 初始凭据:admin/admin(与归档原版不同——原版随机密码打日志;Quantum 首启日志 "Resetting admin user to default username and password"),要求用户首登后立即改密。
- config.yaml 最小配置:
server.cacheDir: /home/filebrowser/data/tmp+sources[0]: path=/srv, config.defaultEnabled: true, defaultUserScope: /(模板在.workbuddy/tmp/fbq-config.yaml)。 - Quantum API 变化:POST /api/login、/api/users 等原版路径 404;API 需用户创建 long-live token(Swagger /swagger 亦需 token);管理操作走网页 UI。
- 验证:公网 title "FileBrowser Quantum";容器内 /srv 两 exe 可见;touch /srv 报 Read-only file system(只读保护生效)。
- 文档:官方 docs filebrowserquantum.com(v1.5.x stable 用 legacy database.db;v2.0.0 beta 权限模型大改 per-source:view/download/modify/create/delete per scope)。
- Quantum CLI 改密成功(2026-09-03 深夜):顶层语法
filebrowser set -u admin,<新密码> -a -c /home/filebrowser/data/config.yaml(其 --help 里 "Use 'set user' or 'set rule'" 是误导,实际没有 set user 子命令,直接顶层set -u)。坑:① 服务运行中执行报 "the database is locked",须先docker stop fbq;② 停服后无法 exec,用docker run --rm --entrypoint /home/filebrowser/filebrowser -v /data/filebrowser-q:/home/filebrowser/data gtstef/filebrowser:stable set -u ...改完再 start;③ 成功标志successfully updated user: admin。登录 API(v1.5):POST/api/auth/login(原版 /api/login 及 /api/user/login 等均 404),错误与正确密码均返回 401 "user unauthorized" 无法区分,验证以浏览器为准。admin 新密码为 CLI 生成的 24 位 hex(见对话,用户可再网页自改)。