我相信这是目前最有用的教程。我本身是一个医生,it小白但爱折腾。因为安装seafile是事情我查了无数篇文章,均无法完美安装,或者安装好了但没发预览文档。我花了一个星期的时间,问了数位大佬,重装无数次,积累下这篇经验,现在和大家分享。欢迎大家关注我的博客:https://miaom.uk 。
本人并不是专业技术员,只凭着我的爱好和强迫症。文章难免出现错误,还望各位大佬轻喷。
通过Docker安装Seafile并开启HTTPS
一周前通过一般方法安装seafile,自我感觉美好。但在深入使用的过程中陆续发现doc文档无法预览、https下无法上传下载等致命问题。官方论坛搜索无果,在社群中一热心网友的提醒下我开始尝试使用Docker。现将全部过程记录如下,作为备忘,也作为他人避坑之指北。
文中的操作环境为CentOS 7,纯净环境。
安装Docker
尽量在纯净环境中进行安装。若不确定系统中有无Docker残留,先执行:
sudo yum remove docker docker-common docker-selinux docker-engine
安装需要的软件包, yum-util 提供 yum-config-manager 功能,另外两个是 devicemapper 驱动依赖的。
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
设置 yum 源。
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装Docker-CE。
sudo yum install docker-ce
启动Docker并将Docker加入开机启动
sudo systemctl start docker
sudo systemctl enable docker
启动Seafile-pro镜像
docker run -d --name seafile \
--restart=always \
-e SEAFILE_SERVER_LETSENCRYPT=true \ #https
-e SEAFILE_SERVER_HOSTNAME=xxx.xxx \ #your_hostname
-e SEAFILE_ADMIN_EMAIL=xxx@xxx.xxx \ #your_email
-e SEAFILE_ADMIN_PASSWORD=xxx \ #your_passwd
-v /data/seafile-data:/shared \
-p 8080:80 \
-p 443:443 \
docker.seadrive.org/seafileltd/seafile-pro:latest
系统会自动拉取镜像并安装。
HTTPS的设置
执行以下命令,以获取容器的日志,并进行跟踪日志输出。
docker logs -f seafile
根据日志可发现,ssl文件目录已创建。现在需要申请ssl证书,并导入到seafile的ssl证书路径。
关闭Seafile。
docker stop seafile
将申请到的SSL证书crt和key文件放置于 /data/seafile-data/ssl
路径。注意!如果的域名为xxx.xxx, 那么证书文件名必需为xxx.xxx.crt,私钥称号必需为xxx.xxx.key。
运行Seafile。
docker start seafile
再执行以下命令,以获取容器的日志,并进行跟踪日志输出。
docker logs -f seafile
Seafile至此可正常使用了。
通过宝塔面板自动申请并续期SSL证书
宝塔面板可以自动申请并续期,我们通过ln
命令来将宝塔面板申请到的证书与seafile的证书路径连接起来,从而达到自动续期的目的。
在执行此命令之前,应该删除 /data/seafile-data/ssl
路径下的xxx.xxx.key
文件。
ln /www/server/panel/vhost/cert/xxx.xxx/fullchain.pem /data/seafile-data/ssl/xxx.xxx.crt #your_hostname
ln /www/server/panel/vhost/cert/xxx.xxx/privkey.pem /data/seafile-data/ssl/xxx.xxx.key ##your_hostname
运行Seafile。
docker start seafile
此时会遇到报错
Error starting userland proxy: listen tcp 0.0.0.0:443: bind: address already in use
提示443端口被占用。前往宝塔面板网页配置文件,修改443端口为444。
再运行Seafile。
docker start seafile
再执行以下命令,以获取容器的日志,并进行跟踪日志输出。
docker logs -f seafile
Seafile至此可正常使用了。Enjoy!