seafile服务器_社区版13.0 全部署流程
本文档需要注意的是:
适合一定浅基础的初学人员,配置较多,系统为刚装的系统,纯净环境。
系统环境:Ubuntu 24.04.3 LTS
seafile服务器版本:13.0.12 (社区版)
本文档编写日期为2025.11.11
适用于0基础学习理解
标注为代码命令格式
红色字体标注为强调
老样子,贴官网文档链接:
部署文档主页:https://cloud.seafile.com/wiki/publish/seafile-manual/7Lj3/
Seafile Docker 部署概览:https://cloud.seafile.com/wiki/publish/seafile-manual/6KxF/
部署社区版:https://cloud.seafile.com/wiki/publish/seafile-manual/hk5G/

由于官网目前最新版本为13.0,因此本文档针对 Seafile v12.0 及以上版本。且支持脚本安装;官方已经把源集成到docker;
因此当采用官方推荐的docker安装时,无需额外安装mysql;
一、Docker安装:
1、安装 Docker 所需的依赖包:
cd /tmp
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
#添加 Docker 的官方 GPG 密钥以确保下载的软件包是安全的
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o docker.gpg#如果执行失败,多执行几次
sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg docker.gpg
#将 Docker 的稳定版仓库添加到 APT 源中,再次更新软件源以包含 Docker 仓库中的包
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
2、安装 Docker
sudo apt install -y docker-ce docker-ce-cli containerd.io
#启动 Docker 服务并设置为开机自启:
sudo systemctl start docker
sudo systemctl enable docker
3.安装vim
Ubuntu/Debian 系列
更新软件源 确保系统的软件源是最新的:
sudo apt update
安装 Vim 使用以下命令安装:
sudo apt install vim
验证安装 检查 Vim 是否成功安装:
vim --version
4.添加第三方docker源仓库:
#进行创建并编辑,输入以下内容:
sudo vim /etc/docker/daemon.json
(仅需要添加横线内的文件即可)
-------------------------------------------------------
{
"registry-mirrors":
[
"https://docker.1ms.run",
"https://docker.1panel.live",
"https://docker.m.daocloud.io"
]
}
-----------------------------------------------------
#保存文件后重启 Docker 服务,新的镜像源即可生效:
systemctl daemon-reload
systemctl restart docker
到此docker安装完毕。。。
二、下载并修改 .env
从 Seafile Docker 12.0开始,我们使用以下三个配置文件:
.env , seafile-server.yml 和 caddy.yml 。
部署社区版:https://cloud.seafile.com/wiki/publish/seafile-manual/hk5G/
mkdir /opt/seafile
cd /opt/seafile
# Seafile CE 12.0wget -O .env https://manual.seafile.com/12.0/repo/docker/ce/env
wget https://manual.seafile.com/12.0/repo/docker/seadoc.yml
wget https://manual.seafile.com/12.0/repo/docker/ce/seafile-server.yml
wget https://manual.seafile.com/12.0/repo/docker/caddy.yml
# Seafile CE 13.0 (此处有12.0和13.0各四个文件,不需要全部下载,想要哪个版本,下载对应的四个文件即可。此处以13.0为例)wget -O .env https://manual.seafile.com/13.0/repo/docker/ce/env
wget https://manual.seafile.com/13.0/repo/docker/ce/seafile-server.yml
wget https://manual.seafile.com/13.0/repo/docker/seadoc.yml
wget https://manual.seafile.com/13.0/repo/docker/caddy.yml
sudo vim .env
此时会打开 .env文件,我们需要按照官方文档给与的字段修改:

INIT_SEAFILE_MYSQL_ROOT_PASSWORD:SEAFILE_MYSQL_DB_PASSWORD:
需要修改的密码此处直接跳过,根据自己想法设置即可;
JWT:JWT私钥(懒得再去安装jwt,直接去找豆包,然后发送 pwgen -s 40 1 即可,豆包自己会运行)
pwgen -s 40 1 此命令可以修改,但是官方文档说明jwt字符串不得小于32个字符,
因此格式应为: pwgen -s <不得小于32> 1
https://www.doubao.com/chat/28707232040014594

SEAFILE_SERVER_HOSTNAME: 官网给出的解释是Seafile服务器的主机名或域名;
但是如果是局域网部署,此处应该设置主机的ip地址;不可随意填写!

如果还有其他自定义需求,可以详见官网文档;
这时先不要保存退出!!
三、设置自定义存储路径:
在官方文档里,文档约定处,写明
-
/opt/seafile是存储Seafile docker compose文件的目录。如果您将Seafile放在不同的目录中,请相应地调整所有路径。

此处必须在这一步进行修改,否则后续修改麻烦;
只需要修改BASIC_STORAGE_PATH 这一项即可;
修改为挂载盘的位置;

设置完毕,按esc,然后输入:wq 保存退出即可。
四、启动Seafile服务
执行以下命令启动 Seafile 服务
sudo docker compose up -d
ERROR: Named volume "xxx" is used in service "xxx" but no declaration was found in the volumes section
当您的 Docker(或 docker-compose)版本过低时,您可能会遇到此问题。您可以根据 Docker 官方文档升级或重新安装 Docker 服务来解决这个问题。
注意:你必须在包含 .env 的目录中运行上述命令。如果 .env 文件在其他目录, 请运行
sudo docker compose --env-file /path/to/.env up -d
事实上,不建议这种跨目录 情况运行,可能会出现衍生问题,建议cd 到安装文件夹下,然后重新运行上方命令,比如 cd /opt/seafile,然后再重新运行 sudo docker compose up -d 即可。
启动服务后,您可以通过跟踪容器 seafile 的日志(即 sudo docker logs seafile -f )查看进度。

然后,你可以看到 Seafile 服务器成功启动的以下消息:

最后,您可以访问 http://主机ip地址 (例:http://192.168.110.155) 来使用 Seafile。
如果端口号没有更改,则不需要加端口。默认的8000和8028均不需要。

五、垃圾回收
垃圾回收
在 seafile 中,当文件被删除时,组成这些文件的块数据不会立即删除,因为可能有其他文件也会引用这些块数据(用于去重功能的实现)。为了真正删除无用的块数据,还需要额外运行"GC"程序。GC 会自动检测到哪些数据块不再被任何文件所引用,并清除它们。
GC 脚本被放在docker容器的 /scripts 目录下。执行 GC 的方法很简单:
docker exec seafile /scripts/gc.sh

对于社区版来说,该程序会暂停 Seafile 服务,但这是一个相对较快的程序,一旦程序运行完成,Seafile 服务也会自动重新启动。而专业版提供了在线运行 GC 的功能,不会暂停 Seafile 服务。
到此,已经全部安装完毕!!!!
六、补充
6.1:卸载seafile
之前已经安装seafile了,现在出现问题想要卸载,重新按照本文安装,怎么办:
查询docker容器关联:
sudo docker ps
如果如下图所示,则这5个容器需要逐一关闭;

由于每个人每次运行时,docker的ID均不一样,则此处只写公式模板:
docker stop ID (例:docker stop 7e4093fc4b60 )
当全部关闭时,可以输入 sudo docker ps 再次查询是否还有开启中的容器;
如果显示为空,则可以进行删除,下图的5个均要删除;
sudo docker ps -a

由于每个人每次运行时,docker的ID均不一样,则此处只写公式模板:
docker rm ID (例:docker stop 7e4093fc4b60 )
全部删除后,可以输入 sudo docker ps -a 再次查询是否还有未删除的容器;
如果显示为空,则容器清理完毕,此时需要删除文件夹:
cd /opt/seafile 切换到seafile当初安装三个配置文件(.env , seafile-server.yml 和 caddy.yml)的文件夹。
sudo rm -r seafile-mysql
sudo rm -r seafile-data
sudo rm -r seafile-caddy
sudo rm -r seadoc-data
然后再重新安装即可。
6.2 Seafile 目录结构
/seafile-mysql : mysql数据
/seafile-caddy:提示:从Seafile Docker 12.0开始,我们使用 Caddy 代理Web服务,如果您想访问Caddy的日志,可以使用以下命令:
docker logs seafile-caddy --follow
seadoc-data:
/seafile-data :主存储数据
-
/opt/seafile-data/seafile: Seafile 服务的配置文件以及数据文件
-
/opt/seafile-data/seafile/logs: Seafile 服务运行产生的日志文件目录。例如,您可以在
/opt/seafile-data/seafile/logs/seafile.log中找到 seaf-server 日志。
-
-
/opt/seafile-data/logs: 日志目录
-
/opt/seafile-data/logs/var-log: 我们将容器内的
/var/log链接到本目录。您可以在/opt/seafile-data/logs/var-log/nginx/中找到 nginx 的日志文件
-
更多配置项
Seafile 的配置文件位于 /opt/seafile-data/seafile/conf 。您可以根据配置部分修改配置项。






