workbuddy.xpcool.com/.workbuddy/memory/2026-09-03.md

28 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 2026-09-03 工作日志
## file.xpcool.com 文件下载站上线Filebrowser
- **需求**/data/share 文件经 file.xpcool.com 提供下载;仅下载 + 访问控制 + 临时分享。
- **方案**Filebrowser 容器127.0.0.1:10880→80restart 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
1. **不再默认 admin/admin**——全新 db 首次启动生成随机密码,仅打印在容器日志(`docker logs filebrowser` 找 "initialized with randomly generated password")。
2. db 是 **bbolt** 非 sqlitesqlite3 读报 "file is not a database")。
3. CLI `users update` 走本地 HTTP/需服务停止操作 db运行时直连 db 报 `Error: timeout`(文件锁);经 API PUT /api/users/1 改密码始终 400invalid data type需完整对象且字段严格
4. 镜像默认以 `user`(uid 1000) 运行(非 root宿主挂载目录须 chown 1000 否则写库 permission denied。
5. **镜像 entrypoint 即 filebrowser**docker run 传参勿重复 `filebrowser` 前缀。
6. ⚠️ **filebrowser 官方项目已于 2026-09-01 归档**(日志 NOTICE停止发布与安全修复已知问题见其 security/advisories有分叉 FileBrowser Quantum 可关注。
- **对外验证通过**:公网 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.jsonport 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 Quantumv1.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 等原版路径 404API 需用户创建 long-live tokenSwagger /swagger 亦需 token管理操作走网页 UI。
- 验证:公网 title "FileBrowser Quantum";容器内 /srv 两 exe 可见touch /srv 报 Read-only file system只读保护生效
- 文档:官方 docs filebrowserquantum.comv1.5.x stable 用 legacy database.dbv2.0.0 beta 权限模型大改 per-sourceview/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.5POST `/api/auth/login`(原版 /api/login 及 /api/user/login 等均 404错误与正确密码均返回 401 "user unauthorized" 无法区分验证以浏览器为准。admin 新密码为 CLI 生成的 24 位 hex见对话用户可再网页自改