首先按这里使用docker部署seafile 注意将映射到宿主机的端口换成80以外的端口(如81),避免与后面的caddy冲突 启动后在浏览器登录,在"头像"->"系统管理"->"设置"中,将"FILE_SERVER_ROOT"中的域名换成ip地址,就可以上传下载文件了. 还有两步验证什么的.
docker-compose的一些常用命令: 1
2
3
4
5docker-compose up -d
docker-compose down #销毁
docker-compose start
docker-compose stop
docker-compose ps #查看docker镜像
然后安装caddy,生成证书 1
2
3echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" | sudo tee -a /etc/apt/sources.list.d/caddy-fury.list
sudo apt install caddy
openssl req -x509 -newkey rsa:2048 -sha256 -nodes -keyout key.pem -out cert.pem -days 3650 -subj "/CN=****"1
2
3
4
5
6
7
8
9:443 {
tls cert.pem key.pem
reverse_proxy 127.0.0.1:81
}
:444 {
tls cert.pem key.pem
reverse_proxy 127.0.0.1:82
} #假如有其他端口也要使用https
然后, 1
2caddy run #测试是否正常
caddy start #后台运行
根据这里设置seafile的nginx和seahub_settings.py,其中nginx的ip地址改为网卡docker0的ip,端口为onlyoffice在宿主机的端口,在本文中为780.
然后在seafile的docker-compose.yml中加入: 1
2
3
4
5
6
7
8
9onlyofficeds:
image: onlyoffice/documentserver:latest
container_name: oods
ports:
- "780:80"
volumes:
- /root/seafile/oods/default.json:/etc/onlyoffice/documentserver/default.json
networks:
- oods-net1
2
3networks:
seafile-net:
oods-net:
其中default.json文件那行可以先不写,运行容器的时候从容器中复制一份出来之后找到rejectUnauthorized并改为false.(使用了自签名证书时需要此步) 也可以在容器内执行: 1
/var/www/onlyoffice/documentserver/npm/json -f /etc/onlyoffice/documentserver/default.json -I -e 'this.services.CoAuthoring.requestDefaults.rejectUnauthorized=false'
或者,使用snap部署onlyoffice: 首先根据这里安装snap. 然后依次执行: 1
2
3snap install onlyoffice-ds
snap set onlyoffice-ds onlyoffice.ds-port=780
vi /var/snap/onlyoffice-ds/current/etc/onlyoffice/documentserver/default.json
最后,在caddy配置文件中加入 1
2
3basicauth /onlyofficeds/* {
用户名 hash码
}