首先将docker-compose.yml 放进Container Station 然后点机创建

services:
  db:
    image: mariadb:10.11
    container_name: seafile-mysql
    environment:
      - MYSQL_ROOT_PASSWORD=db_dev  # 必须,设置MySQL数据库的root密码
      - MYSQL_LOG_CONSOLE=true       # 将日志输出到控制台,便于查看
      - MARIADB_AUTO_UPGRADE=1       # 自动升级MariaDB数据库
    volumes:
      - /opt/seafile-mysql/db:/var/lib/mysql  # 必须,持久化MySQL数据的路径
    networks:
      - seafile-net

  memcached:
    image: memcached:1.6.18
    container_name: seafile-memcached
    entrypoint: memcached -m 256      # 启动memcached并分配256MB内存
    networks:
      - seafile-net
          
  seafile:
    image: seafileltd/seafile-mc:11.0-latest
    container_name: seafile
    ports:
      - "80:80"                       # 映射HTTP端口
      - "443:443"                      # 如果启用https,取消注释
    volumes:
      - /opt/seafile-data:/shared      # 必须,持久化Seafile数据的路径
      - /opt/ssl:/ssl      # 必须,将ssl证书放在这
    environment:
      - DB_HOST=db                     # 数据库服务主机名
      - DB_ROOT_PASSWD=db_dev           # 必须,MySQL数据库root密码
      - TIME_ZONE=Asia/Shanghai         # 可选,设置时区为上海时间
      - SEAFILE_ADMIN_EMAIL=me@example.com   # 设置Seafile管理员邮箱
      - SEAFILE_ADMIN_PASSWORD=asecret        # 设置Seafile管理员密码
      - SEAFILE_SERVER_LETSENCRYPT=false      # 是否启用HTTPS
      - SEAFILE_SERVER_HOSTNAME=docs.seafile.com  # 启用HTTPS时的域名
    depends_on:
      - db
      - memcached
    networks:
      - seafile-net

networks:
  seafile-net:

然后将你的ssl证书放进ssl文件夹中(我本地的所有流量都是经过一台宝塔的服务器做反代waf 所以自己是自签了一个100年的证书)
2026-03-17T06:12:17.png

然后进到/你安装seafile的目录/seafile-data/nginx/conf 修改seafile.nginx.conf文件
2026-03-17T06:19:40.png

# -*- mode: nginx -*-
# Auto generated at 03/17/2026 08:55:07
server {
    listen 443 ssl;
    http2 on;
    server_name pan.htaat.com dlpan.htaat.com;# 这里我是做了web和上传下载域名分离所以两个域名都要填 如果没做分离的话填一个就行了
    ssl_certificate     /ssl/你的证书名称.crt;
    ssl_certificate_key /ssl/你的密钥名称.key;
    client_max_body_size 10m;

    location / {
        proxy_pass http://127.0.0.1:8000/;
        proxy_read_timeout 310s;
        proxy_set_header Host $http_host;
        proxy_set_header Forwarded "for=$remote_addr;proto=$scheme";
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Connection "";
        proxy_http_version 1.1;

        client_max_body_size 0;
        access_log      /var/log/nginx/seahub.access.log seafileformat;
        error_log       /var/log/nginx/seahub.error.log;
    }

    location /seafhttp {
        rewrite ^/seafhttp(.*)$ $1 break;
        proxy_pass http://127.0.0.1:8082;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        client_max_body_size 0;
        proxy_connect_timeout  36000s;
        proxy_read_timeout  36000s;

        # --- 【核心修改:干掉内置 Nginx 的下载写盘】 ---
        proxy_request_buffering off; # 这是原带的(管上传)
        proxy_buffering off;         # 【新增】:彻底关闭下载缓冲!
        proxy_max_temp_file_size 0;  # 【新增】:禁止容器内写任何临时文件!
        
        # 顺手把 HTTP/1.1 的防线也给它补上
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        # ----------------------------------------------

        access_log      /var/log/nginx/seafhttp.access.log seafileformat;
        error_log       /var/log/nginx/seafhttp.error.log;
    }
    location /notification/ping {
        proxy_pass http://127.0.0.1:8083/ping;
        access_log      /var/log/nginx/notification.access.log seafileformat;
        error_log       /var/log/nginx/notification.error.log;
    }

    location /notification {
        proxy_pass http://127.0.0.1:8083/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        access_log      /var/log/nginx/notification.access.log seafileformat;
        error_log       /var/log/nginx/notification.error.log;
    }

    location /seafdav {
        proxy_pass         http://127.0.0.1:8080;
        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_set_header   X-Forwarded-Proto $scheme;
        proxy_read_timeout  1200s;
        client_max_body_size 0;

        access_log      /var/log/nginx/seafdav.access.log seafileformat;
        error_log       /var/log/nginx/seafdav.error.log;
    }

    location /media {
        root /opt/seafile/seafile-server-latest/seahub;
    }

}

然后保存重启seafile容器就行了

如果上传下载没速度 可以把nginx的这段给删了,因为上传下载nginx一直在读缓存 所以我把nginx的缓存给ban了不那么伤硬盘。

        # --- 【核心修改:干掉内置 Nginx 的下载写盘】 ---
        proxy_request_buffering off; # 这是原带的(管上传)
        proxy_buffering off;         # 【新增】:彻底关闭下载缓冲!
        proxy_max_temp_file_size 0;  # 【新增】:禁止容器内写任何临时文件!
        
        # 顺手把 HTTP/1.1 的防线也给它补上
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        # ----------------------------------------------