Skip to content

Commit c96043c

Browse files
Add banana-slides template (#580)
Signed-off-by: Carson Yang <yangchuansheng33@gmail.com>
1 parent 5730379 commit c96043c

File tree

3 files changed

+484
-0
lines changed

3 files changed

+484
-0
lines changed

template/banana-slides/README.md

Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
# 在 Sealos 上部署和托管 Banana Slides
2+
3+
Banana Slides 是一款基于 AI 的智能演示文稿生成应用。本模板在 Sealos 云平台上部署了一个生产就绪的 Banana Slides 实例,支持通过想法、大纲或页面描述自动生成完整的 PPT 演示文稿,并支持多种格式导出。
4+
5+
![Banana Slides](https://raw.githubusercontent.com/labring-actions/templates/main/template/banana-slides/logo.png)
6+
7+
> 推荐使用 [Sealos AI Proxy](os.sealos.io/?openapp=system-aiproxy) 获取API密钥,减小迁移成本
8+
9+
## 关于 Banana Slides 托管
10+
11+
Banana Slides 采用前后端分离的架构运行。前端服务提供用户界面,基于 Nginx 部署并配置了反向代理和静态资源缓存;后端服务处理 AI 生成逻辑和文件管理,运行在 Python Flask 环境中。Sealos 模板自动为后端配置了持久化存储,确保您的演示文稿数据、上传文件和应用实例数据安全存储,并在重启后保持一致。
12+
13+
部署过程中包含自动 SSL 证书配置、域名管理和通过 Sealos 仪表盘的集成监控功能。前端通过优化的 Nginx 配置支持大文件上传(最大 50MB)、API 请求代理和静态资源长期缓存,提供流畅的用户体验。
14+
15+
## 常见使用场景
16+
17+
- **快速制作演示文稿**:通过简单的想法或大纲描述,让 AI 自动生成完整的 PPT 结构和内容
18+
- **内容创作辅助**:为营销、教育、技术分享等场景快速生成专业演示文稿
19+
- **团队协作演示**:支持团队成员快速创建和共享演示文稿
20+
- **多格式导出**:生成的演示文稿可导出为多种格式,便于不同场景使用
21+
- **AI 辅助设计**:利用 AI 能力自动布局和美化幻灯片
22+
23+
## Banana Slides 托管依赖
24+
25+
本 Sealos 模板包含所有必需的依赖项:前端 Nginx 服务器、后端 Flask 应用以及持久化存储。
26+
27+
### 部署依赖
28+
29+
- [Banana Slides 官方文档](https://github.com/Anionex/banana-slides) - 项目官方文档和源代码
30+
- [Sealos 云平台](https://cloud.sealos.run) - 一站式云应用部署平台
31+
- [Sealos 文档中心](https://sealos.run/docs/) - Sealos 使用指南和最佳实践
32+
33+
### 实现细节
34+
35+
**架构组件:**
36+
37+
本模板部署两个主要服务:
38+
39+
- **前端服务**:基于 Nginx 的 Web 服务器,提供用户界面和静态资源服务。配置了 API 反向代理、文件服务代理和静态资源缓存优化,支持大文件上传(最大 50MB)和 SPA 路由
40+
41+
- **后端服务**:Python Flask 应用,处理 AI 生成逻辑、文件上传和演示文稿管理。包含健康检查端点,并通过持久化存储保存应用实例数据和用户上传文件
42+
43+
**配置:**
44+
45+
前端通过 Nginx 反向代理将 `/api` 路径的请求转发到后端服务,`/files` 路径用于动态文件服务。静态资源(JS、CSS、图片等)配置了一年的长期缓存以提高加载速度。后端服务运行在 StatefulSet 中,确保稳定的网络标识和数据持久化。
46+
47+
两个持久化存储卷分别挂载到:
48+
- `/app/backend/instance`:应用实例数据(100Mi)
49+
- `/app/uploads`:用户上传文件(100Mi)
50+
51+
**许可证信息:**
52+
53+
Banana Slides 的许可证信息请参考其[官方仓库](https://github.com/Anionex/banana-slides)
54+
55+
## 为什么在 Sealos 上部署 Banana Slides?
56+
57+
Sealos 是一个基于 Kubernetes 构建的 AI 赋能云操作系统,统一了从云 IDE 开发到生产部署和管理的整个应用生命周期。非常适合构建和扩展现代 AI 应用、SaaS 平台和复杂的微服务架构。通过在 Sealos 上部署 Banana Slides,您将获得:
58+
59+
- **一键部署**:只需点击一次即可部署复杂应用。无需 YAML 配置,无需容器编排复杂性——只需点击、部署即可
60+
61+
- **内置自动扩展**:您的应用根据需求自动上下扩展。处理流量激增无需人工干预或复杂配置
62+
63+
- **轻松定制**:通过直观的表单配置环境变量、资源限制和存储。无需触碰一行代码即可定制设置
64+
65+
- **无需 Kubernetes 专业知识**:获得 Kubernetes 的所有优势——高可用性、服务发现和容器编排——而无需成为 Kubernetes 专家
66+
67+
- **包含持久化存储**:内置持久化存储解决方案确保您的数据安全,并在部署和扩展事件中可访问
68+
69+
- **即时公网访问**:每次部署都会获得带有 SSL 证书的自动公网 URL。无需复杂网络设置即可即时共享应用
70+
71+
- **自动备份**:自动备份和灾难恢复确保您的数据始终安全
72+
73+
在 Sealos 上部署 Banana Slides,专注于构建产品而不是管理基础设施。
74+
75+
## 部署指南
76+
77+
1. 访问 [Sealos 云平台](https://cloud.sealos.run)
78+
2. 在桌面界面中点击"应用商店"
79+
3. 在应用商店中搜索"Banana Slides"
80+
4. 点击"部署应用"并配置所需参数
81+
5. 等待部署完成(通常需要 1-3 分钟)
82+
6. 通过提供的 URL 访问您的应用
83+
84+
## 配置
85+
86+
### API 密钥配置
87+
88+
Banana Slides 需要配置 AI 服务的 API 密钥才能正常工作:
89+
90+
1. **获取 API 密钥**
91+
- 推荐使用 [Sealos AI Proxy](https://cloud.sealos.run/?openapp=system-aiproxy) 获取 API 密钥
92+
- Sealos AI Proxy 提供统一的 AI 服务接入,支持多种 AI 模型,可有效减小迁移成本
93+
- 也可以使用其他兼容的 AI 服务提供商的 API 密钥
94+
95+
2. **在应用中配置**
96+
- 通过部署 URL 访问 Banana Slides 应用
97+
- 点击应用界面右上角的"设置"按钮
98+
- 在设置页面中填入获取到的 API 密钥
99+
- 保存配置后即可开始使用 AI 生成功能
100+
101+
### 应用配置
102+
103+
部署完成后,您还可以通过以下方式配置 Banana Slides:
104+
105+
- **应用启动台**:在 Sealos 应用启动台中修改环境变量、资源限制和存储设置
106+
- **API 访问**:应用会自动配置域名和 SSL 证书,可直接通过 HTTPS 访问
107+
- **数据持久化**:所有上传的文件和生成的演示文稿都存储在持久化卷中,确保数据安全
108+
109+
## 扩展
110+
111+
如需扩展应用:
112+
113+
1. 打开应用启动台
114+
2. 选择您的 Banana Slides 部署
115+
3. 调整 CPU/内存资源
116+
4. 点击"更新"应用更改
117+
118+
注意:由于 Banana Slides 使用 StatefulSet 部署后端服务以保持数据持久性,建议在扩展前评估数据迁移需求。
119+
120+
## 故障排除
121+
122+
### 常见问题
123+
124+
**文件上传失败(413 错误)**
125+
- 原因:上传文件超过 Nginx 配置的大小限制
126+
- 解决:本模板已将上传限制配置为 50MB。如需更大限制,可修改 ConfigMap 中的 `client_max_body_size` 参数
127+
128+
**生成的演示文稿无法下载**
129+
- 原因:后端服务存储空间不足或网络问题
130+
- 解决:检查后端服务的持久化存储容量,确保有足够空间
131+
132+
**API 请求超时**
133+
- 原因:AI 生成过程耗时较长
134+
- 解决:本模板已配置 300 秒的代理超时。如需更长超时,可调整 Nginx 配置中的 `proxy_read_timeout` 参数
135+
136+
### 获取帮助
137+
138+
- [Banana Slides GitHub](https://github.com/Anionex/banana-slides) - 报告问题和查看源代码
139+
- [Sealos 文档](https://sealos.run/docs/) - 平台使用指南
140+
141+
## 附加资源
142+
143+
- [Banana Slides 源代码](https://github.com/Anionex/banana-slides) - 查看完整源代码和贡献指南
144+
- [Sealos 模板文档](https://sealos.run/docs/docs/user-guide/templates/) - 了解如何创建和定制模板
145+
- [Kubernetes StatefulSet 文档](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/) - 了解有状态应用部署
146+
147+
## 许可证
148+
149+
本 Sealos 模板按 MIT 许可证提供。Banana Slides 本身的许可证请参考其[官方仓库](https://github.com/Anionex/banana-slides)

0 commit comments

Comments
 (0)