28 lines
5.2 KiB
Markdown
28 lines
5.2 KiB
Markdown
# 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):
|
||
1. **不再默认 admin/admin**——全新 db 首次启动生成随机密码,仅打印在容器日志(`docker logs filebrowser` 找 "initialized with randomly generated password")。
|
||
2. db 是 **bbolt** 非 sqlite(sqlite3 读报 "file is not a database")。
|
||
3. CLI `users update` 走本地 HTTP/需服务停止操作 db,运行时直连 db 报 `Error: timeout`(文件锁);经 API PUT /api/users/1 改密码始终 400(invalid 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.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(见对话,用户可再网页自改)。
|