# 企微IT智能服务台 — 服务器部署指南 > 目标服务器:`10.90.5.110`(Linux) > 域名:`itsupport.servyou.com.cn` > 更新日期:2026-06-12 --- ## 一、前置条件 - [x] 服务器可访问内网(火绒 `huorong.oa.servyou-it.com`、Dify `yw-dify.dc.servyou-it.com`) - [ ] 服务器已安装 Docker + Docker Compose - [ ] 域名 `itsupport.servyou.com.cn` DNS 已解析到 `10.90.5.110`(或先用 IP 访问) --- ## 二、安装 Docker(如已安装跳过) ### 2.1 检查是否已安装 ```bash docker --version # 应显示 Docker version 24.x+ docker compose version # 应显示 Docker Compose version v2.x+ ``` 如果已安装,跳到第三步。 ### 2.2 安装 Docker(CentOS/RHEL) ```bash # 1. 卸载旧版本(如有) sudo yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine # 2. 安装 yum 工具 sudo yum install -y yum-utils # 3. 添加 Docker 官方仓库(国内用阿里云镜像加速) sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 4. 安装 Docker Engine + Compose 插件 sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # 5. 启动 Docker 并设置开机自启 sudo systemctl start docker sudo systemctl enable docker # 6. 验证安装 docker --version docker compose version ``` ### 2.3 安装 Docker(Ubuntu/Debian) ```bash # 1. 卸载旧版本 sudo apt-get remove -y docker docker-engine docker.io containerd runc # 2. 安装依赖 sudo apt-get update sudo apt-get install -y ca-certificates curl gnupg # 3. 添加 Docker GPG 密钥 sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg # 4. 添加仓库 echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # 5. 安装 sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # 6. 启动 sudo systemctl start docker sudo systemctl enable docker # 7. 验证 docker --version docker compose version ``` ### 2.4(可选)非 root 用户使用 Docker ```bash # 将当前用户加入 docker 组,避免每次 sudo sudo usermod -aG docker $USER # 重新登录生效 newgrp docker ``` --- ## 三、上传部署包 ### 3.1 在服务器创建目录 ```bash sudo mkdir -p /opt/wecom-it-desk sudo chown $USER:$USER /opt/wecom-it-desk ``` ### 3.2 上传文件 在本地 Windows 用 SCP/SFTP 上传部署包: ```powershell # 方法1:用 scp 命令(Git Bash 或 PowerShell) scp it-smart-desk-server-deploy.zip user@10.90.5.110:/opt/wecom-it-desk/ # 方法2:用 WinSCP / FileZilla 图形化工具上传 ``` ### 3.3 解压 ```bash cd /opt/wecom-it-desk unzip it-smart-desk-server-deploy.zip # 解压后目录结构: # /opt/wecom-it-desk/ # ├── docker-compose.yml # ├── .env # ├── nginx/ # │ └── nginx.conf # ├── backend/ # │ ├── Dockerfile # │ ├── app/ # │ ├── alembic/ # │ ├── alembic.ini # │ └── requirements.txt # ├── frontend-h5/dist/ # ├── frontend-agent/dist/ # └── frontend-admin/dist/ ``` --- ## 四、修改配置 ### 4.1 编辑环境变量 ```bash cd /opt/wecom-it-desk vim .env ``` **必须确认的配置项:** | 配置项 | 当前值 | 说明 | |--------|--------|------| | `WECOM_CORP_ID` | `wwa8c87970b2011f41` | 企微企业ID | | `WECOM_AGENT_ID` | `1000133` | 企微应用AgentId | | `WECOM_SECRET` | `EOtQsl...` | 企微应用Secret | | `MOCK_LOGIN_ENABLED` | `true` | 测试阶段用 true,正式上线改为 false | | `DIFY_API_KEY` | `http://...` | Dify AI 服务 Key | | `POSTGRES_PASSWORD` | `wecom_secret_2026` | 数据库密码(首次初始化后不可改) | ### 4.2 确认域名解析 ```bash # 测试域名是否指向本机 ping itsupport.servyou.com.cn # 如果还没配 DNS,可以先在 .env 中把 CORS_ORIGINS 改为: # CORS_ORIGINS=http://10.90.5.110 ``` --- ## 五、启动服务 ### 5.1 首次启动 ```bash cd /opt/wecom-it-desk # 构建后端镜像 + 启动所有容器 docker compose up -d --build # 首次启动需要 2-3 分钟(下载镜像 + 构建后端 + 数据库迁移) ``` ### 5.2 查看启动状态 ```bash # 查看所有容器状态(应全部 healthy/running) docker compose ps # 查看实时日志(Ctrl+C 退出) docker compose logs -f # 只看后端日志 docker compose logs -f backend ``` **预期输出(`docker compose ps`):** ``` NAME STATUS PORTS wecom_it_postgres Up (healthy) 5432/tcp wecom_it_redis Up (healthy) 6379/tcp wecom_it_backend Up (healthy) 8000/tcp wecom_it_nginx Up (healthy) 0.0.0.0:80->80/tcp ``` ### 5.3 验证服务 ```bash # 1. 健康检查 curl http://localhost/itdesk/health # 预期:healthy # 2. 后端 API curl http://localhost/api/health # 预期:{"status":"ok"} # 3. 浏览器访问 # H5 员工端:http://itsupport.servyou.com.cn/itdesk/ # 坐席工作台:http://itsupport.servyou.com.cn/itagent/ # 管理后台:http://itsupport.servyou.com.cn/itadmin/ ``` --- ## 六、常用运维命令 ```bash cd /opt/wecom-it-desk # 重启所有服务 docker compose restart # 只重启后端(代码更新后) docker compose restart backend # 查看某个容器的日志 docker compose logs -f --tail=100 backend # 进入后端容器调试 docker compose exec backend /bin/sh # 停止所有服务 docker compose down # 停止并删除数据卷(⚠️ 会清空数据库!) docker compose down -v # 查看磁盘使用 docker system df ``` --- ## 七、代码更新流程 当有新代码需要部署时: ```bash # 1. 上传新的部署包,覆盖旧文件 # 2. 重新构建并启动 cd /opt/wecom-it-desk docker compose up -d --build # 如果只有前端更新,不需要重建后端镜像: docker compose up -d --no-deps --build nginx ``` --- ## 八、故障排查 | 问题 | 排查命令 | 常见原因 | |------|----------|----------| | 容器反复重启 | `docker compose logs backend` | 数据库连接失败、环境变量缺失 | | 页面空白 | `docker compose logs nginx` | 前端 dist 目录为空或路径错误 | | API 404 | `curl http://localhost:8000/health` | 后端未启动或 nginx proxy 配置错误 | | 数据库连接失败 | `docker compose logs postgres` | POSTGRES_PASSWORD 与 DATABASE_URL 不一致 | | 端口被占用 | `sudo lsof -i :80` | 其他服务占用 80 端口 | --- ## 九、安全建议(后续) - [ ] 配置 HTTPS(Nginx 反代 + 证书,或使用反向代理) - [ ] 修改默认数据库密码 - [ ] 关闭 Mock 登录(`MOCK_LOGIN_ENABLED=false`) - [ ] 限制 80 端口访问来源(防火墙规则)