docker 安装 seafile 企业云盘

发布于:2025-02-26 ⋅ 阅读:(171) ⋅ 点赞:(0)

以下是 Docker 安装 Seafile 的详细步骤,涵盖基础安装和常用配置:


一、准备工作

  1. 安装 Docker 和 Docker Compose

  2. 创建工作目录

    mkdir ~/seafile && cd ~/seafile
    

二、使用官方简化镜像

Seafile 提供了预编译的简化版 Docker 镜像,适合快速测试和小规模使用。

1. 拉取镜像
docker pull seafile/seafile:latest
2. 运行容器(基础版)
# 运行 Seafile 核心服务(SQLite 数据库存储)
docker run -d \
  --name seafile \
  -p 8000:8000 \
  -v ~/seafile/data:/data \
  seafile/seafile:latest
  • -p 8000:8000:将容器的 8000 端口映射到主机。
  • -v ~/seafile/data:/data:挂载数据卷,持久化存储文件和数据库。
3. 访问 Web 界面
  • 浏览器访问 http://localhost:8000,首次访问会引导创建管理员账号。

三、生产环境推荐方案(Nginx + PostgreSQL)

1. 拉取组件镜像
# Seafile 核心服务
docker pull seafile/seafile:latest

# Nginx 反向代理
docker pull nginx:alpine

# PostgreSQL 数据库
docker pull postgres:14
2. 创建配置文件
mkdir -p ~/seafile/conf/nginx && mkdir -p ~/seafile/conf/postgresql

# PostgreSQL 初始化脚本(创建数据库和用户)
cat <<EOF > ~/seafile/conf/postgresql/init.sql
CREATE DATABASE seafile;
CREATE USER seafile WITH PASSWORD 'your_password';
GRANT ALL PRIVILEGES ON DATABASE seafile TO seafile;
EOF

# Nginx 配置文件(seafile.conf)
cat <<EOF > ~/seafile/conf/nginx/seafile.conf
server {
    listen 80;
    server_name your_domain.com;

    location / {
        proxy_pass http://seafile:8000;
        proxy_set_header Host \$host;
        proxy_set_header X-Real-IP \$remote_addr;
    }
}
EOF
3. 运行容器
# 启动 PostgreSQL 数据库
docker run -d \
  --name postgres \
  -p 5432:5432 \
  -v ~/seafile/conf/postgresql:/docker-entrypoint-initdb.d \
  -e POSTGRES_PASSWORD=your_password \
  postgres:14

# 启动 Seafile 核心服务(连接 PostgreSQL)
docker run -d \
  --name seafile \
  -p 8000:8000 \
  -v ~/seafile/data:/data \
  -e DB_HOST=postgres \
  -e DB_PORT=5432 \
  -e DB_USER=seafile \
  -e DB_PASSWORD=your_password \
  seafile/seafile:latest

# 启动 Nginx 反向代理
docker run -d \
  --name nginx \
  -p 80:80 \
  -v ~/seafile/conf/nginx:/etc/nginx/conf.d \
  nginx:alpine

四、配置 HTTPS(推荐)

1. 获取 SSL 证书

使用 Let’s Encrypt 免费证书:

# 安装 certbot 和 nginx-certbot
sudo apt-get install certbot python3-certbot-nginx

# 生成证书
sudo certbot certonly --non-interactive --agree-tos --email your_email@example.com \
  --domain your_domain.com --nginx
2. 更新 Nginx 配置

将生成的证书路径添加到 Nginx 配置中:

server {
    listen 443 ssl;
    server_name your_domain.com;

    ssl_certificate /etc/letsencrypt/live/your_domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/your_domain.com/privkey.pem;

    location / {
        proxy_pass http://seafile:8000;
        ...
    }
}

五、数据备份与恢复

1. 备份数据卷
# 备份 Seafile 数据
docker exec seafile tar czvf /data/backup_$(date +%F).tar.gz /data/

# 备份 PostgreSQL 数据
docker exec postgres pg_dumpall -U seafile -f /data/postgres_backup.sql
2. 恢复数据
# 恢复 Seafile 数据
docker exec seafile tar xzvf /path/to/backup_*.tar.gz -C /data/

# 恢复 PostgreSQL 数据
docker exec postgres psql -U seafile -d seafile < /path/to/postgres_backup.sql

六、常见问题

1. 无法访问 Web 界面
  • 检查端口映射:docker ps 确认 8000 端口是否开放。
  • 查看容器日志:docker logs seafile.
2. 数据库连接失败
  • 确保 DB_HOSTDB_PORTDB_USERDB_PASSWORD 正确。
  • 检查 PostgreSQL 容器是否运行:docker ps | grep postgres.
3. 文件同步异常
  • 确保客户端和服务器时间一致。
  • 检查防火墙规则,开放 8000443 端口。

七、高级配置(可选)

  1. 分布式存储:添加多个存储节点,提升吞吐量。
  2. LDAP 集成:使用企业级用户目录(如 Active Directory)。
  3. 监控报警:集成 Prometheus + Grafana 监控 Seafile 性能。

通过以上步骤,您可以在 Docker 中快速部署 Seafile 并配置为生产环境。如果遇到问题,建议参考 Seafile 官方文档 获取更多支持。


网站公告

今日签到

点亮在社区的每一天
去签到