SlideBot AI 生产部署指南:uvicorn + Nginx + Docker 上线全解
【免费下载链接】SlideBot-AI SlideBot AI - AI-Powered Presentation Generator项目地址https://gitcode.com/gh_mirrors/sl/SlideBot-AI点击查看免费下载SlideBot AI 是一款基于 Gemini 大模型的 AI 演示文稿PPT智能生成工具。想把它变成团队可用的线上服务生产部署是必经一步。本文带你用 uvicorn Nginx Docker 完成完整上线流程从环境变量配置、前端构建、服务发布、反向代理到容器化打包一套可直接落地的部署教程。为什么选择 uvicorn Nginx Docker先花 1 分钟理解这套技术栈的分工后面每一步就都好懂了组件角色在 SlideBot AI 中的职责uvicornASGI 服务器运行 FastAPI 后端提供全部/api/*接口和前端静态页面Nginx反向代理80/443 端口接入、HTTPS、上传大小限制、长任务超时控制Docker容器化一键打包 Python Node 运行环境保证部署环境一致SlideBot AI 的后端基于 FastAPI见 server.py启动后同时托管 React 前端的构建产物所以整个系统只需要发布一个 Python 服务架构非常简洁。部署前准备环境与配置清单环境要求来自 README.mdPython 3.10Node.js 18一个 Gemini API Key必需克隆项目并安装依赖git clone https://gitcode.com/gh_mirrors/sl/SlideBot-AI cd SlideBot-AI # 安装后端 Python 依赖FastAPI、uvicorn、Pillow 等见 requirements.txt pip install -r requirements.txt配置环境变量。这是最容易出的一步项目通过 modules/config.py 读取.env文件官方提供了示例模板cp .env.example .env编辑.env核心变量如下# 必需Gemini API 密钥文本生成 图片生成都依赖它 GEMINI_API_KEYyour_gemini_api_key_here # 可选科大讯飞语音转写不配置则录音转写功能不可用 IFLYTEK_APP_IDyour_iflytek_app_id IFLYTEK_API_SECRETyour_iflytek_api_secret 另外注意系统使用邀请码登录默认邀请码为VISITOR可在 invite_codes.json 中自行修改生产环境建议只发放受控的邀请码。第一步构建 React 前端为静态文件前端位于 frontend/使用 React 18。构建一次即可产物会被后端自动托管cd frontend npm install npm run build cd ..构建成功后会生成frontend/build/目录。后端启动时 server.py 中的setup_static_files()会自动挂载/static静态资源目录配置 SPA 路由兜底所有未匹配路径返回index.html关键检查点如果构建目录不存在日志会打印前端构建目录不存在页面将打不开——这是新手最常踩的坑。第二步uvicorn 发布后端服务本地快速验证开发模式python server.py生产环境推荐用 uvicorn 命令行直接启动uvicorn server:app --host 0.0.0.0 --port 8001几个生产参数说明--host 0.0.0.0允许外网访问本机测试可用127.0.0.1--port 8001SlideBot AI 的默认端口--workers 2可选多进程提升并发能力注意会话数据存于内存多 worker 时需确认业务可接受--log-level info保留日志便于排查验证服务是否健康SlideBot AI 内置了健康检查接口curl http://localhost:8001/api/health返回如下 JSON 即说明后端上线成功{message: PPT智能生成器API服务正在运行, version: 2.0.0, docs: /docs}用 systemd 守护进程不用 Docker 时的推荐做法创建/etc/systemd/system/slidebot.service[Unit] DescriptionSlideBot AI Service Afternetwork.target [Service] WorkingDirectory/opt/SlideBot-AI ExecStart/usr/bin/uvicorn server:app --host 127.0.0.1 --port 8001 Restartalways RestartSec5 [Install] WantedBymulti-user.targetsystemctl daemon-reload systemctl enable --now slidebot第三步Nginx 反向代理配置Nginx 负责公网接入。针对 SlideBot AI 的使用特点大文件上传 长耗时图片生成有两个参数必须调好否则线上必出问题server { listen 80; server_name your-domain.com; # 录音、文档、母版图上传放宽请求体限制 client_max_body_size 100m; location / { proxy_pass http://127.0.0.1:8001; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 整份 PPT 逐页生成可能耗时数分钟必须拉长超时 proxy_connect_timeout 60s; proxy_read_timeout 600s; proxy_send_timeout 600s; } }⚠️重点proxy_read_timeout默认只有 60 秒。SlideBot AI 批量生成 PPT 图片/api/image/generate-all属于长任务Nginx 默认配置会在生成中途断开连接务必设为 600s 以上。配置完成后重载 Nginxnginx -t systemctl reload nginx启用 HTTPS如果服务器有域名建议用certbot --nginx your-domain.com一条命令签发并自动改写 Nginx 配置没有域名时内网使用 HTTP 即可。第四步Docker 容器化部署Docker 方案适合多机部署或环境不可控的服务器。仓库未自带 DockerfileREADME.md 建议自行编写下面是一份可直接使用的参考版本# 阶段1构建前端 FROM node:18-alpine AS frontend WORKDIR /app/frontend COPY frontend/package.json . RUN npm install COPY frontend/ . RUN npm run build # 阶段2后端运行 FROM python:3.11-slim WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . COPY --fromfrontend /app/frontend/build ./frontend/build EXPOSE 8001 CMD [uvicorn, server:app, --host, 0.0.0.0, --port, 8001]构建并启动容器docker build -t slidebot-ai . docker run -d \ --name slidebot \ -p 8001:8001 \ --env-file .env \ -v $(pwd)/outputs:/app/outputs \ -v $(pwd)/references:/app/references \ -v $(pwd)/audio:/app/audio \ -v $(pwd)/records:/app/records \ slidebot-ai为什么必须挂载数据卷modules/config.py 中定义了多个运行时目录目录用途outputs/生成的 PPT 图片与 ZIP/PDF 包references/用户上传的母版、Logoaudio/会议录音文件records/登录记录 CSV、访问计数不挂载的话容器一删数据全丢。Docker 方案下Nginx 配置与第三步完全相同只需把proxy_pass指向容器所在地址即可。上线自检部署成功长什么样发布完成后按这个清单快速验收健康检查浏览器访问http://你的服务器IP:8001/api/health能看到版本信息 ✅登录输入邀请码VISITOR可正常进入生产环境请换掉默认码✅生成流程输入一个主题能走通「大纲 → 风格 → 逐页生成 → 下载 ZIP/PDF」全流程 ✅长任务不中断10 页 PPT 批量生成过程中Nginx 不报 504 Gateway Timeout ✅重启恢复systemctl restart或容器重启后服务自动拉起 ✅常见问题速查现象原因解决方法打开只有 API 文档没有界面frontend/build不存在重新执行npm run build批量生成中途 504Nginx 超时太短proxy_read_timeout调至 600s上传录音/文档报 413请求体超限client_max_body_size调大生成报 Key 错误GEMINI_API_KEY未配置检查.env并重启服务登录提示邀请码无效邀请码不匹配核对 invite_codes.json总结回顾一下 SlideBot AI 的生产部署全貌配置.envGemini Key 为必需项构建前端npm run build产物由 FastAPI 自动托管uvicorn以0.0.0.0:8001启动systemd 或 Docker 守护Nginx反代重点调好上传大小与 600s 长任务超时验收/api/health接口 完整生成流程整个流程走下来一条命令启动、Nginx 统一接入、Docker 一键交付你的 SlideBot AI 线上服务就稳稳跑起来了。核心源码可参考 server.py路由与静态托管、modules/config.py配置与目录祝上线顺利 赞分享【免费下载链接】SlideBot-AI SlideBot AI - AI-Powered Presentation Generator项目地址https://gitcode.com/gh_mirrors/sl/SlideBot-AI点击查看免费下载相关推荐Mall4j 生产部署运维全指南jar 部署、Docker Compose、Nginx 与上线检查Mall4j 生产部署运维全指南jar 部署、Docker Compose、Nginx 与上线检查 导读 本文是 Mall4j 开源电商系统的部署运维实战指电商后端前端移动开发5分钟上线Bottle应用GunicornNginx生产环境部署指南5分钟上线Bottle应用GunicornNginx生产环境部署指南 你还在为Bottle.py应用部署发愁吗服务器响应慢、并发撑不住、配置复杂到劝退本后端Web框架Angular Google Maps 性能优化技巧5个简单方法提升地图加载速度Angular Google Maps 性能优化技巧5个简单方法提升地图加载速度 Angular Google MapsAGM是一个功能强大的Angula创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

深入Koudoku生成器源码:install/views 生成器如何实现模型与路由的自动注入

深入Koudoku生成器源码:install/views 生成器如何实现模型与路由的自动注入

后端 【免费下载链接】koudoku Robust subscription support for Rails with Stripe. 项目地址: https://gitcode.com/gh_mirrors/ko/koudoku 点击查看 免费下载 Koudoku 是一款为 Ruby on Rails 应用提供 Stripe 订阅支持的开源引擎,内置定价页、支付页…

2026/10/14 18:43:00 阅读更多 →
广州劳动仲裁律师委托全流程 从咨询到开庭每一步要做什么

广州劳动仲裁律师委托全流程 从咨询到开庭每一步要做什么

在广州走劳动仲裁,从咨询到开庭大致要经过咨询评估、确定委托、证据准备、立案申请、庭前准备、开庭审理、裁决后处理七个环节,每个环节当事人和律师各有分工。本文先按流程逐步拆解,再说明各阶段律师的作用,并在文末给出律所名单…

2026/10/16 0:10:33 阅读更多 →
基于 Spring Boot + Vue3 的家居生活商城网站设计与实现

基于 Spring Boot + Vue3 的家居生活商城网站设计与实现

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 1. 项目背景与意义 随着互联网技术的快速发展和人们生活水平的不断提高,线上购物已经成为日常生活中不可或缺的一部分。家居生活用品作为高频刚需品类&…

2026/10/14 18:43:00 阅读更多 →

最新新闻

主动均衡原理与MP2642GR-Z+PIC18LF45K42工程实践

主动均衡原理与MP2642GR-Z+PIC18LF45K42工程实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 1:06:33 阅读更多 →
微擎模块开发引入ThinkPHP框架:架构融合与工程化实践

微擎模块开发引入ThinkPHP框架:架构融合与工程化实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 1:06:33 阅读更多 →
从零开始学Qt:信号槽与布局实战入门

从零开始学Qt:信号槽与布局实战入门

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 1:06:33 阅读更多 →
词向量评估与Subword:从Skip-gram短板到FastText与BPE实战选型

词向量评估与Subword:从Skip-gram短板到FastText与BPE实战选型

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 1:06:33 阅读更多 →
qchat聊天插件部署实战:Workerman+GatewayWorker+Vue环境搭建与性能调优

qchat聊天插件部署实战:Workerman+GatewayWorker+Vue环境搭建与性能调优

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 1:06:33 阅读更多 →
机动车年检国标38900-2020解读:从外观到底盘,搞清检测项目

机动车年检国标38900-2020解读:从外观到底盘,搞清检测项目

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 1:05:33 阅读更多 →

日新闻

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 0:00:05 阅读更多 →
信号与系统频域分析作业解题指南

信号与系统频域分析作业解题指南

1. 作业背景与核心要求解析信号与系统作为电子信息类专业的核心基础课,其作业设计往往直接关联课程的核心知识框架。2026年春季第六次作业的布置,通常对应着课程进展到频域分析的关键阶段。根据常规教学进度推测,本次作业可能涉及以下核心内容…

2026/10/16 0:00:05 阅读更多 →
Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

1. 从一个"四不像"的练手项目说起如果你已经看完了Django的官方教程前几章,跟着敲完了投票应用,大概会有一种"我好像会了,又好像什么都不会"的割裂感。教程里每个知识点都是拆开的——这一章讲模型,下一章讲视…

2026/10/16 0:00:05 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →