# 私有化部署完全指南 > Docker Compose 一键部署,HTTPS 配置、备份策略与版本升级。 ## 🏠 什么是私有化部署? 私有化部署让你在自己的服务器上运行 Websopy 平台,享受: - 🔒 **数据完全自主** - 所有数据存储在你的服务器 - ⚙️ **完全可控** - 自定义配置、插件、界面 - 💰 **成本可控** - 无按调用量计费 - 🏢 **合规无忧** - 满足数据不出网要求 ## 📋 系统要求 ### 最低配置 | 资源 | 最低要求 | |------|----------| | CPU | 4 核 | | 内存 | 8 GB | | 硬盘 | 100 GB SSD | | 系统 | Ubuntu 20.04+ / CentOS 8+ | ### 推荐配置 | 资源 | 推荐配置 | |------|----------| | CPU | 8 核+ | | 内存 | 16 GB+ | | 硬盘 | 500 GB SSD+ | | 系统 | Ubuntu 22.04 LTS | ### 软件依赖 - Docker 20.10+ - Docker Compose 2.0+ - Git - 域名(可选,用于 HTTPS) ## 🚀 开始部署 ### 第一步:准备服务器 ```bash # 更新系统 sudo apt update && sudo apt upgrade -y # 安装 Docker(Ubuntu/Debian) curl -fsSL https://get.docker.com | sh sudo usermod -aG docker $USER # 安装 Docker Compose sudo apt install docker-compose -y # 验证安装 docker --version docker-compose --version ``` ### 第二步:下载部署包 ```bash # 创建工作目录 mkdir -p ~/websopy && cd ~/websopy # 下载最新版本 wget https://releases.websopy.com/on-premise/latest.tar.gz # 解压 tar -xzf latest.tar.gz cd websopy-deploy ``` ### 第三步:配置环境 ```bash # 复制配置文件 cp .env.example .env # 编辑配置文件 nano .env ``` 关键配置项: ```env # 版本配置 WEBSOPY_VERSION=latest # 数据库配置 DB_HOST=postgres DB_PORT=5432 DB_NAME=websopy DB_USER=websopy DB_PASSWORD=your-secure-password # Redis 配置 REDIS_HOST=redis REDIS_PORT=6379 REDIS_PASSWORD=your-redis-password # 域名配置(可选) DOMAIN=your-domain.com HTTPS_ENABLED=true # 管理员账户 ADMIN_EMAIL=admin@yourcompany.com ADMIN_PASSWORD=your-admin-password ``` ### 第四步:启动服务 ```bash # 拉取镜像 docker-compose pull # 启动所有服务 docker-compose up -d # 查看服务状态 docker-compose ps ``` **预期输出:** ``` NAME STATUS websopy-app running websopy-worker running websopy-postgres running websopy-redis running websopy-nginx running ``` ### 第五步:访问平台 服务启动后,通过浏览器访问: - 前端界面:`http://your-server-ip:80` - 管理后台:`http://your-server-ip:80/admin` - API 端点:`http://your-server-ip:8080/api/v1` 首次登录使用配置的 `ADMIN_EMAIL` 和 `ADMIN_PASSWORD`。 ## 🔒 HTTPS 配置 ### 使用 Let's Encrypt(推荐) ```bash # 编辑 nginx 配置 nano nginx/conf.d/ssl.conf ``` ```nginx server { listen 443 ssl http2; 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; # 其他配置... } server { listen 80; server_name your-domain.com; return 301 https://$server_name$request_uri; } ``` ```bash # 申请 SSL 证书 certbot --nginx -d your-domain.com # 重启 nginx docker-compose restart nginx ``` ### 使用自有证书 ```bash # 创建证书目录 mkdir -p nginx/ssl # 复制证书文件 cp your-cert.crt nginx/ssl/cert.pem cp your-cert.key nginx/ssl/key.pem ``` ## 💾 备份策略 ### 自动备份脚本 创建 `backup.sh`: ```bash #!/bin/bash BACKUP_DIR=/data/backups/websopy DATE=$(date +%Y%m%d_%H%M%S) # 创建备份目录 mkdir -p $BACKUP_DIR # 备份数据库 docker exec websopy-postgres pg_dump -U websopy > $BACKUP_DIR/db_$DATE.sql # 备份上传文件 tar -czf $BACKUP_DIR/uploads_$DATE.tar.gz /data/websopy/uploads # 备份配置 tar -czf $BACKUP_DIR/config_$DATE.tar.gz /data/websopy/config # 保留最近 30 天的备份 find $BACKUP_DIR -mtime +30 -delete echo "备份完成: $DATE" ``` ```bash # 添加执行权限 chmod +x backup.sh # 设置定时任务(每天凌晨 3 点执行) crontab -e # 添加行: 0 3 * * * /data/websopy/backup.sh >> /var/log/backup.log 2>&1 ``` ### 数据恢复 ```bash # 停止服务 docker-compose down # 恢复数据库 docker exec -i websopy-postgres psql -U websopy < db_backup_file.sql # 恢复上传文件 tar -xzf uploads_backup.tar.gz -C /data/websopy/uploads # 重启服务 docker-compose up -d ``` ## 🔄 版本升级 ### 查看当前版本 ```bash docker exec websopy-app websopy --version ``` ### 升级步骤 ```bash cd ~/websopy # 1. 备份当前数据(必须!) ./backup.sh # 2. 下载新版本 wget https://releases.websopy.com/on-premise/v2.3.0.tar.gz tar -xzf v2.3.0.tar.gz # 3. 更新环境变量(如有必要) nano .env # 检查新版本的配置变更 # 4. 拉取新镜像 docker-compose pull # 5. 执行数据库迁移 docker-compose run --rm websopy-app websopy migrate # 6. 重启服务 docker-compose up -d # 7. 验证升级 docker-compose logs -f websopy-app ``` ### 紧急回滚 ```bash # 1. 停止当前版本 docker-compose down # 2. 切换回旧版本 git checkout v2.2.0 # 3. 恢复数据库 docker exec -i websopy-postgres psql -U websopy < db_backup_file.sql # 4. 启动旧版本 docker-compose up -d ``` ## 🔧 性能优化 ### 资源调整 编辑 `docker-compose.yml`: ```yaml services: websopy-app: deploy: resources: limits: cpus: '2' memory: 4G reservations: cpus: '1' memory: 2G websopy-worker: deploy: resources: limits: cpus: '4' memory: 8G ``` ```bash docker-compose up -d ``` ### PostgreSQL 优化 ```bash docker exec websopy-postgres psql -U websopy -c " ALTER SYSTEM SET shared_buffers = '2GB'; ALTER SYSTEM SET effective_cache_size = '6GB'; ALTER SYSTEM SET maintenance_work_mem = '512MB'; ALTER SYSTEM SET checkpoint_completion_target = 0.9; " docker-compose restart postgres ``` ## 🐛 常见问题 ### Q: 服务启动失败? ```bash # 查看日志 docker-compose logs -f # 检查端口占用 netstat -tlnp | grep -E '80|443|5432|6379' ``` ### Q: 数据库连接失败? 1. 检查 `DB_PASSWORD` 是否正确 2. 确认 postgres 容器是否正常运行 3. 查看 postgres 日志:`docker-compose logs postgres` ### Q: 内存不足? ```bash # 查看内存使用 docker stats # 增加 swap sudo fallocate -l 4G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile ``` ### Q: 如何完全卸载? ```bash # 停止服务 docker-compose down -v # 删除数据(谨慎!) rm -rf ~/websopy docker system prune -a ``` ## 📞 获取帮助 - 📧 邮件支持:support@websopy.com - 💬 技术社区:[forum.websopy.com](https://forum.websopy.com) - 📖 官方文档:[docs.websopy.com](https://docs.websopy.com) --- **上一步:** [AI 智能体接入指南](./ai-agent.md) **下一步:** [安装 SDK 与初始化](./sdk-installation.md)