Loading... Seafile社区版13.0作为开源企业级云存储解决方案的重要版本,新增了Redis缓存默认支持、通知服务等特性,进一步提升了性能与功能扩展性。本文将以Docker部署方式为核心,从环境准备到服务运维,提供完整的部署实操指南,适用于个人或小型团队搭建私有云存储服务。 ## 一、环境要求 Seafile社区版13.0对服务器配置有基础要求,确保服务稳定运行: - 硬件配置:至少2核CPU、2GB内存(建议4核8GB以应对多用户访问场景) - 操作系统:支持Docker的Linux发行版(如Ubuntu 20.04+/CentOS 7+/Debian 11+) - 依赖软件:Docker 20.10+、Docker Compose 2.0+ ## 二、文档约定 为统一操作标准,本文约定以下路径和配置规则,修改时需全局同步调整: - 核心配置目录:`/opt/seafile`,用于存储Docker Compose相关配置文件 - 数据存储路径: `/opt/seafile-mysql`:存储MySQL数据库数据(持久化关键数据) - `/opt/seafile-data`:存储Seafile应用数据(含配置、日志、上传文件等) - `/opt/seafile-caddy`:存储Caddy代理的SSL证书(Let's Encrypt自动生成) 配置文件说明:Seafile 13.0依赖`.env`(环境变量)、`seafile-server.yml`(服务编排)、`seadoc.yml`(文档服务)、`caddy.yml`(反向代理)四个核心文件 ## 三、安装Docker环境 首先完成Docker和Docker Compose的安装,以Ubuntu 22.04为例,执行以下命令: ```bash # 1. 更新系统包 sudo apt update && sudo apt upgrade -y # 2. 安装Docker依赖 sudo apt install -y apt-transport-https ca-certificates curl software-properties-common # 3. 添加Docker官方源 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # 4. 安装Docker和Docker Compose sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin # 5. 验证安装 docker --version # 应显示20.10+版本 docker compose version # 应显示2.0+版本 # 6. 配置Docker免sudo(可选) sudo usermod -aG docker $USER newgrp docker ``` 其他系统可参考[Docker官方安装指南](https://docs.docker.com/get-docker/)完成配置。 ## 四、下载13.0版本配置文件 按约定路径创建目录并下载官方配置文件,执行以下命令: ```bash # 1. 创建核心目录并进入 mkdir -p /opt/seafile cd /opt/seafile # 2. 下载Seafile 13.0社区版配置文件 wget -O .env https://manual.seafile.com/13.0/repo/docker/ce/env wget https://manual.seafile.com/13.0/repo/docker/ce/seafile-server.yml wget https://manual.seafile.com/13.0/repo/docker/seadoc.yml wget https://manual.seafile.com/13.0/repo/docker/caddy.yml ``` 若下载失败,可手动访问[Seafile 13.0官方配置库](https://manual.seafile.com/13.0/repo/docker/ce/)下载对应文件,确保文件名与路径正确。 ## 五、关键配置(核心步骤) Seafile 13.0的核心配置集中在`.env`文件中,需重点配置数据库、缓存、域名等关键参数。 **本教程使用1443作为https端口,故下方配置均使用1443端口作为示例。** ### 5.1编辑`.env`文件 关键配置项如下: | 变量名 | 描述 | 本次配置 | | -------------------------------------- | ------------------------ | ---------------------------------------------------------- | | INIT\_SEAFILE\_MYSQL\_ROOT\_PASSWORD | MySQL根用户密码 | test123 | | SEAFILE\_MYSQL\_DB\_PASSWORD | Seafile数据库用户密码 | test456 | | JWT | JWT私钥(32字符以上) | pW7cU2dU9oU6qW3qE9rJ7eS7eZ1iL8lT6dY3sH1v| | SEAFILE\_SERVER\_HOSTNAME | 服务器域名/IP | sefile.9az.ren:1443 | | SEAFILE\_SERVER\_PROTOCOL | 访问协议 | https | | TIME\_ZONE | 时区配置 | UTC| | INIT\_SEAFILE\_ADMIN\_EMAIL | 管理员邮箱(登录账号) | admin@9az.ren| | INIT\_SEAFILE\_ADMIN\_PASSWORD | 管理员密码 | asecret | | CACHE_PROVIDER |缓存服务类型 | redis | | REDIS\_PASSWORD | Redis访问密码 | 可选配置本文为空 | 编辑后完成配置文件示例如下: ```bash COMPOSE_FILE='seafile-server.yml,caddy.yml,seadoc.yml' COMPOSE_PATH_SEPARATOR=',' SEAFILE_IMAGE=seafileltd/seafile-mc:13.0-latest SEAFILE_DB_IMAGE=mariadb:10.11 SEAFILE_REDIS_IMAGE=redis SEAFILE_CADDY_IMAGE=lucaslorentz/caddy-docker-proxy:2.9-alpine SEADOC_IMAGE=seafileltd/sdoc-server:2.0-latest NOTIFICATION_SERVER_IMAGE=seafileltd/notification-server:13.0-latest MD_IMAGE=seafileltd/seafile-md-server:13.0-latest BASIC_STORAGE_PATH=/opt SEAFILE_VOLUME=$BASIC_STORAGE_PATH/seafile-data SEAFILE_MYSQL_VOLUME=$BASIC_STORAGE_PATH/seafile-mysql/db SEAFILE_CADDY_VOLUME=$BASIC_STORAGE_PATH/seafile-caddy SEADOC_VOLUME=$BASIC_STORAGE_PATH/seadoc-data SEAFILE_SERVER_HOSTNAME=sefile.9az.ren:1443 SEAFILE_SERVER_PROTOCOL=https TIME_ZONE=UTC JWT_PRIVATE_KEY=pW7cU2dU9oU6qW3qE9rJ7eS7eZ1iL8lT6dY3sH1v SEAFILE_MYSQL_DB_HOST=db SEAFILE_MYSQL_DB_USER=seafile SEAFILE_MYSQL_DB_PASSWORD=test456 SEAFILE_MYSQL_DB_CCNET_DB_NAME=ccnet_db SEAFILE_MYSQL_DB_SEAFILE_DB_NAME=seafile_db SEAFILE_MYSQL_DB_SEAHUB_DB_NAME=seahub_db CACHE_PROVIDER=redis REDIS_HOST=redis REDIS_PORT=6379 REDIS_PASSWORD= MEMCACHED_HOST=memcached MEMCACHED_PORT=11211 INIT_SEAFILE_MYSQL_ROOT_PASSWORD=test123 INIT_SEAFILE_ADMIN_EMAIL=admin@9az.ren INIT_SEAFILE_ADMIN_PASSWORD=asecret ENABLE_SEADOC=false ENABLE_NOTIFICATION_SERVER=false NOTIFICATION_SERVER_URL= ENABLE_SEAFILE_AI=false SEAFILE_AI_LLM_TYPE=openai SEAFILE_AI_LLM_URL= SEAFILE_AI_LLM_KEY= SEAFILE_AI_LLM_MODEL=gpt-4o-mini MD_FILE_COUNT_LIMIT=100000 ``` ### 5.2编辑`caddy.yml` 关键配置如下 ``` #默认ports端口信息如下 ports: - 80:80 - 443:443 #修改为自定义端口 ports: - 8090:8090 - 1443:1443 ``` ### 5.3上传证书并编辑`seafile-server.yml` 在主机创建目录/opt/seafile-caddy/certs/ 将证书和密钥文件上传至上述文件夹,并将证书命名为cert.pem密钥命名为key.pem。 编辑`seafile-server.yml` 关键配置如下 ``` volumes: - ${SEAFILE_VOLUME:-/opt/seafile-data}:/shared - "/opt/seafile-caddy/certs/cert.pem:/usr/local/share/ca-certificates/cert.crt" #增加此行配置 labels: caddy: ${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty} caddy.tls: "/data/caddy/certs/cert.pem /data/caddy/certs/key.pem" #增加此行配置 caddy.reverse_proxy: "{{upstreams 80}}" ``` ## 六、启动Seafile服务 配置完成后,在`/opt/seafile`目录下执行启动命令,Docker会自动拉取镜像并创建容器: ```bash # 启动服务(后台运行) docker compose up -d # 查看启动日志(关键,确认是否成功) docker logs seafile -f ``` 当日志出现以下内容时,说明服务启动成功: ```Plain Seafile server started Done. Starting seahub at port 8000 ... ---------------------------------------- Successfully created seafile admin ---------------------------------------- Seahub is started Done. ``` ## 七、计划任务配置Seafile定时自动垃圾回收及数据库清理 1. 打开 crontab 编辑界面: ```bash crontab -e ``` 2. 在打开的文件中添加以下两行配置: ``` 0 0 * * * docker exec seafile sh -c "cd /opt/seafile/seafile-server-latest/ && ./seahub.sh python-env python3 seahub/manage.py clean_db_records" 0 3 * * * docker exec seafile /opt/seafile/seafile-server-latest/seaf-gc.sh ``` 3. 保存并退出编辑器 配置说明: * 第一行`0 0 * * *`表示每天凌晨 0 点执行数据库清理命令 * 第二行`0 3 * * *`表示每天凌晨 3 点执行 seaf-gc 命令 * 星号`*`分别代表分、时、日、月、周,这里的配置表示 "每天" --- <div class="tip inlineBlock info"> 本文为原创教程,采用 **[知识共享署名 4.0 国际许可协议(CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/legalcode.zh-hans)** 进行许可。 **协议核心条款:** * 您可以自由地复制、分发、展示、表演和再创作本文内容(包括用于商业用途); * 唯一要求:在使用本文内容时,需清晰标注原文作者及原文链接,确保署名信息可追溯; * 再创作作品需采用与本文相同或兼容的许可协议进行许可。 完整协议条款可访问 [CC BY 4.0 官方网站](https://creativecommons.org/licenses/by/4.0/) 查看。 </div> 最后修改:2025 年 11 月 06 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏