智能摘要
手里拿着 DouYin 企业级 SaaS 源码,却在宝塔面板上卡在了环境配置?90% 的人死磕手动安装依赖和修改 Nginx 配置,结果不是数据库连不上就是前端白屏。其实官方脚本已能自动处理 Python 环境和 Playwright,真正的“生死线”在于那个被忽略的端口安全设置:一旦将自动化服务端口误对公网开放,你的服务器瞬间就会成为黑客的提款机。这篇教程里藏着一个只需三步就能避开数据泄露风险的“反直觉”配置逻辑,你敢确定自己现在的防火墙设置真的安全吗?
1. 上传并解压
将发布包上传到服务器,例如:
/www/wwwroot/douyin-prod
2. 终端生成配置
进入发布包目录后执行:
/bin/bash deploy/scripts/configure-deployment.sh
脚本会在终端里提示你填写域名、数据库、Redis、管理员账号等配置,并自动生成:
交互已经做了简化,例如:
- 多个额外域名直接用逗号分隔
- MySQL 改为分别填写主机、端口、数据库名、用户名、密码
- Redis 改为分别填写主机、端口、库编号、密码
- 脚本会自动拼接连接串和跨域配置
apps/douyin-saas-backend/.envapps/douyin-automation/.envapps/douyin-saas-frontend/.env.productiondeploy/supervisor/*.inideploy/nginx/*.confdeploy/bt/BT-MANUAL-STEPS.md
3. 安装依赖并初始化
配置完成后执行:
/bin/bash deploy/scripts/bootstrap-install.sh
这个脚本会自动:
- 创建 Python 虚拟环境
- 安装后端和自动化服务依赖
- 执行 Alembic 数据库迁移
- 安装 Playwright Chromium
脚本结束时会输出安装汇总,明确显示:
- 哪些阶段已完成
- 哪些阶段失败
- 失败原因是什么
例如数据库密码错误、数据库不存在、MySQL 无法连接、Playwright 安装失败,都会单独提示。
4. 宝塔手工收尾
- 安装
Nginx、MySQL、Redis、Supervisor 管理器 - 按终端配置脚本中填写的信息创建数据库和账号
- 创建 SaaS 前端站点,根目录设置为:
web/saas-frontend - 网站 -> 设置 -> 伪静态,填写内容:
location / { try_files $uri $uri/ /index.html; } - 网站 -> 设置 -> 反向代理
新增一条反向代理,字段这样填:代理名称:saas-api代理目录:/api/目标 URL:http://127.0.0.1:9000发送域名:$host
补充说明:
代理目录必须带/api/目标 URL不要写成公网域名,直接写本机127.0.0.1:9000发送域名保持$host
- 将
deploy/nginx/*.conf作为对照检查,不需要手动整段粘贴 - 将
deploy/supervisor/*.ini作为 3 个守护进程的参考配置 - 启动 Supervisor 进程
- 申请并启用 SSL
5. 自动化服务端口安全
默认情况下,自动化服务只监听:
127.0.0.1:8000
这意味着:
- 不应该对公网直接开放
8000 - 不需要在宝塔、防火墙、安全组里放行
8000
如果你把 8000 暴露到公网,确实可能被恶意访问、扫描、刷接口、探测弱点。
建议:
- 不开放
8000公网端口 - 仅让
9000的 SaaS 后端在本机访问8000 - 安全组 / 防火墙只放行
80、443,以及你确实需要的管理端口 - 不要给自动化服务单独建公网站点

