乐于分享
好东西不私藏

260421 seafile软件部署记录

260421 seafile软件部署记录

今天公司让我研究下如何在linux系统上部署seafile管理软件,功能类似于云盘。看了下最新版的https://cloud.seafile.com/wiki/publish/seafile-manual/hk5G/官方文档,结合其他网络上搜索到的相关信息,我在公司服务器上安装了ubuntu24.04 LTS操作系统。
1.前置安装
需要在装seafile前,预装mysql/docker软件。
sudo apt install mysql-servermysql -u root -pmysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';mysql> flush privileges;安装docker //参考https://docs.docker.com/engine/install/ubuntu/  官方文档//进入mysql库,新建库及账户CREATE DATABASE ccnet_db CHARACTER SET utf8;CREATE DATABASE seafile_db CHARACTER SET utf8;CREATE DATABASE seahub_db CHARACTER SET utf8;CREATE USER 'seafile'@'%' IDENTIFIED BY '你的强密码';GRANT ALL PRIVILEGES ON ccnet_db.* TO 'seafile'@'%';GRANT ALL PRIVILEGES ON seafile_db.* TO 'seafile'@'%';GRANT ALL PRIVILEGES ON seahub_db.* TO 'seafile'@'%';FLUSH PRIVILEGES;
获取部分seafile配置,参考https://cloud.seafile.com/wiki/publish/seafile-manual/hk5G/官网链接
mkdir /opt/seafilecd /opt/seafile# Seafile CE 13.0wget -O .env https://manual.seafile.com/13.0/repo/docker/ce/envwget https://manual.seafile.com/13.0/repo/docker/ce/seafile-server.ymlwget https://manual.seafile.com/13.0/repo/docker/seadoc.ymlwget https://manual.seafile.com/13.0/repo/docker/caddy.ymlnano .env
2.启用docker报错
/opt/seafile# docker compose up -d[+] up 5/5 ! Image seafileltd/seafile-mc:13.0-latest           Interrupted                                                                                   0.0s ✘ Image seafileltd/sdoc-server:2.0-latest           Error failed to resolve reference "docker.io/seafileltd/sdoc-server:2.0-latest": fai...       0.0s ! Image redis                                       Interrupted                                                                                   0.0s ! Image mariadb:10.11                               Interrupted                                                                                   0.0s ! Image lucaslorentz/caddy-docker-proxy:2.12-alpine Interrupted                                                                                   0.0sError response from daemon: failed to resolve reference "docker.io/seafileltd/sdoc-server:2.0-latest": failed to do request: Head "https://registry-1.docker.io/v2/seafileltd/sdoc-server/manifests/2.0-latest": dial tcp 162.125.32.13:443: connect: connection refused
问了下AI,说是国内无法访问docker官方镜像库,需要改成国内的国内镜像加速器。用下列三步骤,完成修改。
# 创建配置文件夹(如果已存在会跳过)sudo mkdir -p /etc/docker# 写入国内镜像加速器(网易、百度、Docker 中国官方源,稳定可用)sudo tee /etc/docker/daemon.json <<-'EOF'{  "registry-mirrors": [    "https://hub-mirror.c.163.com",    "https://mirror.baidubce.com",    "https://docker.mirrors.ustc.edu.cn"  ]}EOF
# 重新加载配置sudo systemctl daemon-reload# 重启Dockersudo systemctl restart docker
cd /opt/seafiledocker compose up -d
3.DNS报错
拉取镜像时,出现报错
/opt/seafile# docker compose up -d[+] up 5/5 ! Image mariadb:10.11                               Interrupted                                                                                  30.1s ! Image redis                                       Interrupted                                                                                  30.1s ! Image seafileltd/sdoc-server:2.0-latest           Interrupted                                                                                  30.1s ! Image seafileltd/seafile-mc:13.0-latest           Interrupted                                                                                  30.1s ✘ Image lucaslorentz/caddy-docker-proxy:2.12-alpine Error failed to resolve reference "docker.io/lucaslorentz/caddy-docker-proxy:2.12-a...       30.1sError response from daemon: failed to resolve reference "docker.io/lucaslorentz/caddy-docker-proxy:2.12-alpine": failed to do request: Head "https://hub-mirror.c.163.com/v2/lucaslorentz/caddy-docker-proxy/manifests/2.12-alpine?ns=docker.io": dial tcp: lookup hub-mirror.c.163.com on 127.0.0.53:53: no such host
检查服务器DNS解析失败,Ubuntu 24.04 默认的本地 DNS 无法解析镜像域名,需要换成国内阿里云DNS。查询后修改了/etc/docker/daemon.json配置文件
cp /etc/docker/daemon.json /etc/docker/daemon.json.bakvi /etc/docker/daemon.json{"registry-mirrors":["https://o6w82nal.mirror.aliyuncs.com","https://0cl05db5188026850f80c00ldef654a0.mirror.swr.mvhuaweicloud.com","https://5tqw56kt.mirror.aliyuncs.com","https://docker.lpanel.live","http://mirrors.ustc.edu.cn/","http://mirror.azure.cn/","https://hub.rat.dev/","https://docker.ckvl.me/","https://docker.chenbv.cn","https://docker.hpcloud.cloud","https://docker.m.daocloud.io","https://cf-workers-docker-io-4cq.pages.dev"]}
然后重启docker后,
systemctl daemon-reloadsystemctl restart dockerdocker compose up -d
这次镜像拉取成功了!
3.修改seafile配置
首先要改的是/opt/seafile目录下的.env配置文件,.env内部的变量解释

先用pwgen生成JWT私钥

apt install pwgenpwgen -s 40 12zf7FwjCxGcOAN1erYVTTWM2gousCMsZdv3enAqx
然后修改.env全局配置。另Seafile 的配置文件位于/opt/seafile-data/seafile/conf,修改后,检查
docker ps -a | grep seafile  //已经在运行了
之前拉取的seafile镜像已经在运行了。现在按照官网文档新增一个管理员账号
docker exec -it seafile /opt/seafile/seafile-server-latest/reset-admin.sh
seafile的启动,需要在有seafile-server.yml的路径下,执行docker compose up -d。查看docker启动日志
docker imagesdocker-compose logs -f #查看docker启动运行日志使用 docker compose down 命令停止并删除现有容器(这不会影响你的数据卷)。然后执行 docker compose up -d 以基于新的配置重新创建并启动容器。
4.删除测试docker镜像

删除测试镜像 IMAGE :hello-world,这里可以直接用CONTAINER ID删除,命令是docker rm 0940a570214c

初步安装的记录到此结束,还在研究具体配置。