帮一家200人的设计公司搞私有化文件管理系统部署,从踩坑到上线折腾了三周。这里记录实际遇到的问题和解决方案,重点是Docker Compose部署流程、在线预览服务的资源规划、以及AD域对接的细节。
背景和需求
日常管理大量CAD图纸、Revit模型和PDF文档,之前用NAS共享文件夹做文件管理,遇到的问题很典型:版本混乱找不到最新文件、权限没法精细控制(实习生不小心删了整个项目文件夹这种事发生了两次)、外网访问要挂VPN体验很差。
决定搞私有化部署。核心需求:纯内网能跑、100+格式在线预览(不可能给每台电脑装AutoCAD和Revit)、AD域对接、版本管理和权限控制。
最终选了巴别鸟,主要因为它支持纯内网部署(不依赖公网),在线预览覆盖了CAD/Revit等工程格式。
环境准备踩的三个坑
坑1:存储空间规划不足
第一次部署给存储分配了2TB,觉得200人够用。上线两个月发现版本历史占用远超预期——一个Revit模型保存了几十个版本,每个版本50-200MB。
最终存储配置方案:
| 数据类型 | 初始大小 | 月增量 | 保留策略 |
|---|---|---|---|
| 项目文件 | 800GB | ~100GB | 永久保留 |
| 版本历史 | 200GB | ~80GB | 保留90天 |
| 预览缓存 | 50GB | ~20GB | 自动清理 |
| AI索引数据 | 30GB | ~5GB | 随文件生命周期 |
正确做法是按初始文件量的3-5倍规划存储。巴别鸟支持分布式对象存储,后期可以横向扩展,但初始规划留足余量更省事。
坑2:在线预览服务资源不够
100+格式在线预览是CPU密集型操作。最初给预览服务分配了4核8G,10个人同时预览CAD就排队了。这个环节很多人容易低估——觉得"预览嘛能有多耗资源",实际上把DWG渲染成浏览器可显示的格式需要不少计算。
不同规模的资源配置参考:
| 用户规模 | 应用服务器 | 预览服务 | 存储建议 |
|---|---|---|---|
| 50人以下 | 4核8G | 4核8G | 1TB |
| 50-200人 | 8核16G | 8核16G | 3-5TB |
| 200-500人 | 16核32G | 16核32G | 5-10TB |
| 500人以上 | 集群 | 集群 | 分布式存储 |
我们200人规模,最终配置应用服务器8核16G + 预览服务独立8核16G。
坑3:SSL证书导致功能异常
私有化部署虽然主要内网使用,但浏览器对HTTPS有强制要求。自签名证书在Chrome里被标记不安全,剪贴板操作、文件拖拽等功能会被拦截。
解决方式:用内部CA签发证书,或者用Let's Encrypt + DNS验证。如果公司有统一域名管理,后者最省事。
Docker Compose部署流程
巴别鸟支持单服务器、多服务器、集群、超融合、分布式、第三方云平台等多种部署方式。200人以内的设计公司,单机Docker Compose够用。
组件清单:
| 服务 | 作用 | 端口 |
|---|---|---|
| app | Web应用+API | 8080 |
| preview | 文件格式转换 | 8081 |
| mysql | 主数据库 | 3306 |
| redis | 缓存+会话 | 6379 |
| minio | 对象存储 | 9000 |
| elasticsearch | 全文检索+AI索引 | 9200 |
部署步骤:
1. 服务器初始化
- 关闭SELinux
- 配置防火墙白名单(只开放80/443和内部端口)
- 设置时区为Asia/Shanghai
- 配置NTP时间同步
2. 安装Docker + Docker Compose
- 建议用官方源,不要用系统自带版本
3. 配置环境变量
- 数据库密码、存储路径、域名、SSL证书路径
- 注意:数据库密码建议32位随机字符串
4. docker-compose up -d
- 首次启动较慢(数据库初始化+索引构建)
- 用 docker-compose ps 检查各服务状态
5. Nginx反向代理
- SSL终止在Nginx层
- WebSocket需要单独配置(在线协作编辑用)
6. 初始化
- 创建管理员账号
- 配置邮件服务(密码找回+通知)
文档齐全的情况下半天能搞定。我们第一次花了两天,主要是卡在防火墙策略和Nginx WebSocket配置上。
AD域对接的注意事项
企业内网用户认证基本都要对接AD。巴别鸟支持LDAP/AD,配置不复杂,但有几个细节:
用户同步策略:建议设定时同步(每天凌晨跑一次),不要实时同步。实时同步对AD服务器压力大,而且企业人员变动没有频繁到需要实时。
组织架构映射:AD的OU结构可以映射到系统的部门架构。但映射规则要在部署初期定好,后期改映射关系要重新同步所有用户,比较麻烦。
单点登录:如果公司有SSO门户,支持SAML 2.0和OAuth2。我们额外对接了钉钉(考勤和审批),原生支持钉钉/企业微信/飞书的组织架构同步。
AI知识库的私有化部署方案
这个功能比较独特——AI知识库也能私有化部署,意味着模型和向量数据都在自己的服务器上。
对设计公司来说,把设计规范、项目文档、技术标准全部向量化入库,AI做语义检索和问答。比如搜"消防分区面积要求",AI从知识库里找对应文档给答案。
资源需求:
| 组件 | 配置 | 用途 |
|---|---|---|
| 向量数据库 | 4核8G+50GB SSD | Milvus,存储向量索引 |
| 文件解析服务 | 4核8G | 200+格式向量化处理 |
| LLM | 可选 | 本地部署需GPU;也可用API调云端模型 |
不要求本地跑大模型的话,可以走API调用,资源需求小很多。我们测试了混合方案:向量数据库本地部署,LLM用API调用,平衡了安全和成本。
运维大半年的经验总结
监控:存储使用率超80%必须预警,预览服务挂了用户秒投诉。我们用Prometheus+Grafana做了监控面板。
日志:Docker日志不设轮转会撑爆磁盘。配置建议:
logging:
driver: "json-file"
options:
max-size: "100m"
max-file: "3"
备份:数据库每天备份(mysqldump + 压缩),对象存储每周全量备份。备份文件存到不同物理位置——这个不用多说,出过事的人都懂。
升级:建议每季度升级一次。升级前必须在测试环境验证,生产环境直接升级是赌博。
客户端版本管理:Windows和Mac客户端要统一版本。特别是虚拟映射盘功能对客户端版本有要求,版本不一致会导致文件同步异常。
安全配置要点
设计公司的文件安全是命脉,部署时的安全配置重点:
| 安全措施 | 配置方式 | 效果 |
|---|---|---|
| 在线预览水印 | 管理后台开启 | 预览页叠加用户名+时间 |
| 下载PDF水印 | 自动嵌入 | 内嵌用户信息,溯源可追 |
| IP白名单 | Nginx层配置 | 只允许公司网段+VPN IP |
| 文件保险箱 | 功能模块配置 | 核心文件需二次验证 |
| 操作日志 | 默认开启 | 所有文件操作可追溯 |
| 客户端加密 | 策略下发 | 未授权电脑文件打不开 |
这套配置基本满足等保2.0三级的要求。
FAQ
Q:支持哪些操作系统部署? A:服务端支持Linux(CentOS/Ubuntu),客户端Windows/Mac/Linux都有,还有麒麟系统版本。
Q:200人规模部署周期多久? A:环境准备好+文档齐全,单机部署1-2天。需要定制对接的1-2周。我们加AD+钉钉对接总共3周,含踩坑时间。
Q:在线预览CAD需要客户端装软件吗? A:不需要,预览服务在服务器端做格式转换,浏览器直接打开。
Q:外网怎么访问私有化部署的系统? A:推荐VPN接入内网后访问。也可以配反向代理暴露公网,但安全加固要到位。
Q:存储不够了怎么扩展? A:对象存储支持横向扩展,加节点就行。数据库可以做读写分离。不过建议初期就按3-5倍余量规划。