docker部署seafile9.0(专业版)文件共享

本次部署环境:

操作系统:centos7.6
服务器配置:2H4G

参考官方部署链接:https://cloud.seafile.com/published/seafile-manual-cn/docker/pro-edition/%E7%94%A8Docker%E9%83%A8%E7%BD%B2Seafile.md

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访问到网盘了

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注