# Seafile 12.0 + 1Panel MariaDB 一键部署完整方案

🚀 快速开始

手动下载运行

# 下载脚本
wget https://seafile-script.pages.dev/oneclick.sh
chmod +x oneclick.sh

# 运行部署
sudo ./oneclick.sh

主要特性

📋 系统要求

组件 最低要求 推荐配置
操作系统 Linux (Ubuntu/CentOS/Debian) Ubuntu 20.04+
Docker >= 20.10 最新稳定版
Docker Compose >= 1.29 >= 2.0
内存 2GB RAM 4GB+ RAM
处理器 2 核 CPU 4 核+ CPU
存储空间 10GB 50GB+

🔧 部署流程

1. 环境检测

脚本自动检测:

2. 版本选择

支持两个版本:

3. 配置向导

引导式配置以下信息:

4. 自动部署

脚本自动完成:

📁 文件结构

部署完成后的目录结构:

/opt/seafile/ # 默认安装目录 ├── .env # 环境变量配置 ├── seafile-server.yml # Docker Compose 主配置 ├── caddy.yml # Caddy 配置 (HTTPS 模式) ├── manage.sh # 管理脚本 ├── UPGRADE.md # 升级指南 ├── seafile-data/ # Seafile 数据目录 │ ├── seafile/ # 核心配置和数据 │ └── logs/ # 日志文件 └── seafile-caddy/ # Caddy 数据 (HTTPS 模式)

🔨 管理命令

脚本自动生成 manage.sh 管理工具:

# 基本操作
./manage.sh start          # 启动服务
./manage.sh stop           # 停止服务
./manage.sh restart        # 重启服务
./manage.sh status         # 查看状态

# 日志管理
./manage.sh logs           # 查看所有日志
./manage.sh logs seafile   # 查看 Seafile 日志

# 维护操作
./manage.sh backup         # 备份数据
./manage.sh reset-admin    # 重置管理员密码
./manage.sh shell          # 进入容器

# 更新升级
./manage.sh update         # 更新到最新版本

🐛 故障排除

常见问题及解决方案

1. 数据库连接失败

# 检查 MariaDB 容器状态
docker ps | grep mariadb

# 检测网络连通性
docker exec seafile ping <1panel-mariadb-ip>

# 验证数据库权限
docker exec <mariadb-container> mysql -uroot -p -e "SELECT User,Host FROM mysql.user WHERE User='seafile'"

2. 端口冲突

# 查看端口占用
netstat -tlnp | grep :8080

# 修改端口 (编辑 .env 文件)
vim .env
# 修改 SEAFILE_PORT=8080 为其他端口

3. HTTPS 证书问题

# 检查域名解析
nslookup your-domain.com

# 查看 Caddy 日志
docker logs seafile-caddy

# 确保防火墙开放 80/443 端口
ufw allow 80
ufw allow 443

4. 权限问题

# 修复数据目录权限
chown -R 8000:8000 /opt/seafile/seafile-data

# 对于 NFS 挂载,确保 no_root_squash
# 在 /etc/exports 中添加 no_root_squash 选项

重要诊断命令

# 查看容器状态
docker-compose ps

# 查看详细日志
docker-compose logs -f

# 检查配置文件
cat .env

# 测试数据库连接
docker exec -it seafile mysql -h<db-host> -P3306 -useafile -p

🔄 升级方案

自动升级

./manage.sh update

手动升级

  1. 备份数据:
    ./manage.sh backup
  2. 停止服务:
    ./manage.sh stop
  3. 更新镜像:
    docker-compose pull
  4. 启动服务:
    ./manage.sh start

🔒 安全说明

数据库安全

网络安全

访问控制

📖 配置说明

重要环境变量

变量 作用 示例
SEAFILE_SERVER_HOSTNAME 访问域名 seafile.example.com
SEAFILE_SERVER_PROTOCOL 协议类型 httphttps
SEAFILE_MYSQL_DB_HOST 数据库地址 192.168.1.100
JWT_PRIVATE_KEY JWT 密钥 自动生成 40 位

数据库配置

Seafile 需要三个独立数据库:

💡 最佳实践

性能优化

  1. MariaDB 配置
    [mysqld]
    innodb_buffer_pool_size = 1G
    innodb_log_file_size = 256M
    character-set-server = utf8mb4
  2. 定期维护
    # 清理垃圾数据 (建议每月执行)
    ./manage.sh shell
    /opt/seafile/seafile-server-latest/seaf-gc.sh

监控建议

  1. 监控磁盘使用率
  2. 定期检查日志文件大小
  3. 监控数据库连接数
  4. 设置自动备份计划

🆘 获取帮助

脚本选项

./oneclick.sh --help      # 查看帮助
./oneclick.sh --version   # 显示版本

社区资源

📜 版本历史

v2.0 (最新)

v1.0