本次部署环境:
操作系统:centos7.6
服务器配置:2H4G
seafile9.0(专业版)docker-compose.yaml文件
version: '2.0'
services:
db:
image: mariadb:10.5
container_name: seafile-mysql
environment:
- MYSQL_ROOT_PASSWORD=a123456 # 设置数据库密码,另外需要移除原本安装的mysql,占用3306端口,当然如果改端口除外
- MYSQL_LOG_CONSOLE=true
volumes:
- /home/seafile/mysql:/var/lib/mysql # 配置容器映射本地目录
networks:
- seafile-net
memcached:
image: memcached:1.6
container_name: seafile-memcached
entrypoint: memcached -m 256
networks:
- seafile-net
elasticsearch:
image: elasticsearch:7.16.2
container_name: seafile-elasticsearch
environment:
- discovery.type=single-node
- bootstrap.memory_lock=true
- xpack.security.enabled=false
- "ES_JAVA_OPTS=-Xms1g -Xmx1g"
volumes:
- /home/seafile/elasticdata:/usr/share/elasticsearch/data # 修改es容器映射本地目录.
networks:
- seafile-net
seafile:
image: docker.seafile.top/seafileltd/seafile-pro-mc:latest
container_name: seafile
ports:
- "9090:80" # 修改宿主机端口与容器业务端口映射,我用的9090,部署后可以IP:9090访问
# - "4433:443" # 如果启用ssl,需要取消注释.
volumes:
- /home/seafile/data:/shared # 映射容器目录.
environment:
- DB_HOST=db
- DB_ROOT_PASSWD=a2883076 # 配置上面数据的root密码.
# - TIME_ZONE=Asia/Shanghai
- SEAFILE_ADMIN_EMAIL=644183866@qq.com # 配置管理员账号,默认是'me@example.com'
- SEAFILE_ADMIN_PASSWORD=a1314520 # 配置管理员密码 ,默认是'asecret'
- SEAFILE_SERVER_LETSENCRYPT=false # 是否使用https
- SEAFILE_SERVER_HOSTNAME=106.52.95.14 # 如果使用https,则需要指定主机
depends_on:
- db
- memcached
- elasticsearch
networks:
- seafile-net
networks:
seafile-net:
注意:seafile 9.0 版本,需要手动在宿主机上创建 elasticsearch 的映射路径,并且给 777 权限,否则 elasticsearch 启动会报路径权限问题,命令如下
mkdir -p /home/seafile/elasticdata && chmod 777 -R /home/seafile/elasticdata
在docker-compose.yaml的目录下执行命令启动 Seafile 服务
docker-compose up -d
等待一会,显示容器已经下镜像,并且启动成功了,一共4个容器。通过ip:端口访问。
配置域名访问
通过宝塔创建网站(如果不使用宝塔的话,自行在Nginx里配置域名转发)
配置反向代理,点击新建网站的–设置–反向代理,填入如下内容:
保存后,点击刚刚建的反向代理–配置文件,覆盖为下面的内容:
#PROXY-START/
location / {
proxy_pass http://127.0.0.1:9090;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_read_timeout 1200s;
client_max_body_size 0;
}
#PROXY-END/
现在就可以用配置的域名访问seafile了,记得在域名运营商配置域名解析。
配置webdav
进入seafile容器,找到配置文件seafdav.conf,一般在docker-compose.yml配置的安装目录里conf文件夹
[root@VM-8-17-centos seafile]# docker exec -it seafile /bin/bash
root@d7f47cc5c972:/opt/seafile# cd conf/
root@d7f47cc5c972:/opt/seafile/conf# pwd
/opt/seafile/conf
root@d7f47cc5c972:/opt/seafile/conf# vim seafdav.conf
编辑配置文件开启webdav,我这里设置了访问路径/seafdav
[WEBDAV]
enabled = true
port = 8080
fastcgi = false
share_name = /seafdav
保存配置后,返回上一层目录,进入/seafile-pro-server-9.0.5目录,执行重启服务
root@d7f47cc5c972:/opt/seafile# cd seafile-pro-server-9.0.5/
root@d7f47cc5c972:/opt/seafile/seafile-pro-server-9.0.5# ./seafile.sh restart
此时我就可以通过webdav协议从ip:9090/seafdav
或 域名/seafdav
访问到网盘了