首页
关于
Search
1
seafile pro 11.0安装踩坑记录
40 阅读
2
GitHub+Coding双线部署的Hexo静态博客搭建
19 阅读
3
年度数字账单
15 阅读
4
再谈知识管理方案:Obsidian本地 + Typecho云端
13 阅读
5
Alist 疑似被收购,用户需谨慎更新v3.45.0
11 阅读
技术
生活
科研
登录
Search
标签搜索
博客
Backblaze
知识管理
obsidian
S3
B2
Seafile
VPS
服务器
Docker
Cloudreve
私人网盘
云存储
typecho
邮箱
腾讯
python
爬虫
计算机网络
Android
Momoko
累计撰写
12
篇文章
累计收到
0
条评论
首页
栏目
技术
生活
科研
页面
关于
搜索到
1
篇与
服务器
的结果
2025-09-09
seafile pro 11.0安装踩坑记录
系统环境与部署目标操作系统: Ubuntu 20.04 LTS容器化方案: Docker & Docker Compose应用服务: Seafile Professional Server 11.0反向代理: 1Panel (Nginx-based)对象存储: Backblaze B2 Cloud Storage (S3-Compatible API)部署目标: 实现一个稳定、可靠的Seafile专业版实例,其文件数据完全存储于Backblaze B2,并实现HTTPS安全访问和WebDAV功能。问题复现与排错在遵循官方文档进行初步配置后(遵循S3存储相关文档),遭遇了一系列问题。下文将按照实际排错顺序,逐一剖析并提供解决方案。数据被错误上传到本地问题:所有上传的文件数据块均被写入了本地磁盘,而B2的存储用量没有任何变化。解决:B2存储配置有误,导致Seafile服务使用了本地存储。正确配置(seafile.conf)请参考下方:# /opt/seafile-data/seafile/conf/seafile.conf [fileserver] port = 8082 [database] # 参考官网,自行设置 # ... (数据库配置) ... [notification] # 参考官网,自行设置 # ... (通知服务配置) ... [commit_object_backend] name = s3 bucket = <commits-bucket-name> host = <b2-s3-endpoint> key_id = <commits-exclusive-key-id> key = <commits-exclusive-key> use_v4_signature = true aws_region = <region-from-endpoint> use_https = true [fs_object_backend] name = s3 bucket = <fs-bucket-name> host = <b2-s3-endpoint> key_id = <fs-exclusive-key-id> key = <fs-exclusive-key> use_v4_signature = true aws_region = <region-from-endpoint> use_https = true [block_backend] name = s3 bucket = <blocks-bucket-name> host = <b2-s3-endpoint> key_id = <blocks-exclusive-key-id> key = <blocks-exclusive-key> use_v4_signature = true aws_region = <region-from-endpoint> use_https = true [memcached] memcached_options = --SERVER=memcached --POOL-MIN=10 --POOL-MAX=100Signature validation failed问题:seafile网页版上传文件时显示ERROR,查看seafile日志发现Signature validation failed。这表明连接已成功建立,但在API认证环节失败。2025-09-08 04:54:02 ../common/obj-backend-s3.c(355): Put object ... error 403. Response: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Error> <Code>AccessDenied</Code> <Message>Signature validation failed</Message> </Error> 2025-09-08 04:54:02 repo-mgr.c(7655): Failed to add commit.解决:采用的是AWS S3 v4的验证方式,Backblaze B2并不完全兼容。因此,在创建bucket时,应该为commits, fs, blocks三个Bucket分别创建三个独立的App Key,并确保每个Key的权限范围仅限于其对应的Bucket。WebDAV 502 Bad Gateway问题:Seafile安装后经测试上传没有问题,但在启用并配置了Seafile WebDAV服务后,所有通过反向代理访问WebDAV端点(https://example.com/seafdav)的请求,均收到502 Bad Gateway错误。通过docker compose up启动Seafile时,Docker Compose默认会创建一个专用的、隔离的bridge网络(例如,名为seafile_seafile-net)。所有在docker-compose.yml中定义的服务(seafile, db, memcached)都会被加入到这个网络中,它们之间可以互相访问。与此同时,1Panel及其管理的OpenResty/Nginx服务,运行在另一个独立的Docker网络中(例如,1panel-network)。而不同自定义网络之间默认是互相隔离的,这造成不同服务之间无法通信。一开始,在1Panel中为WebDAV配置的反向代理目标地址是http://127.0.0.1:8080,这个地址指向的是1Panel容器所在的网络命名空间或宿主机,取决于1Panel的网络模式。它无法穿透网络隔离,直接访问到seafile_seafile-net网络内部的seafile容器的8080端口。解决:通过端口映射暴露服务修改docker-compose.yml, 为seafile服务添加WebDAV端口的映射。services: seafile: ports: - "10080:80" # 主网站端口 - "18080:8080" # WebDAV端口 (宿主机18080 -> 容器8080)更新反向代理配置,在1Nginx中,将WebDAV的proxy_pass目标地址修改为指向映射后的宿主机端口。proxy_pass http://127.0.0.1:18080/seafdav/;重启服务, 执行docker compose down && docker compose up -d以应用新的端口映射。似乎也可以通过将容器加入共同网络来解决,但我还没试过。
2025年09月09日
40 阅读
0 评论
0 点赞