Twilioapp-project/web-app/DEPLOYMENT_GUIDE.md

297 lines
5.9 KiB
Markdown
Raw Normal View History

# 翻译服务应用 - 数据库集成部署指南
## 概述
本指南将帮助您完成翻译服务应用的数据库集成和部署,包括 Supabase 数据库设置、API 配置和应用部署。
## 前置要求
- Supabase 账户
- Stripe 账户(用于支付处理)
- Twilio 账户(用于视频通话)
- OpenAI 账户用于AI翻译
## 1. Supabase 数据库设置
### 1.1 创建 Supabase 项目
1. 访问 [Supabase Dashboard](https://supabase.com/dashboard)
2. 点击 "New Project"
3. 填写项目信息:
- 项目名称:`twilio-translation-app`
- 数据库密码:选择一个强密码
- 区域:选择最近的区域
### 1.2 执行数据库迁移
1. 在 Supabase Dashboard 中,进入 "SQL Editor"
2. 复制 `web-app/database-schema.sql` 文件的内容
3. 粘贴到 SQL Editor 中并执行
4. 确认所有表和触发器创建成功
### 1.3 配置认证设置
1. 进入 "Authentication" → "Settings"
2. 启用 "Enable email confirmations"
3. 设置重定向URL
- Site URL: `http://localhost:8080`
- Redirect URLs: `http://localhost:8080/index.html`
### 1.4 获取 API 密钥
1. 进入 "Settings" → "API"
2. 复制以下信息:
- Project URL
- anon (public) key
- service_role (secret) key
## 2. API 服务配置
### 2.1 Stripe 配置
1. 登录 [Stripe Dashboard](https://dashboard.stripe.com/)
2. 获取 API 密钥:
- Publishable key (用于前端)
- Secret key (用于后端)
3. 配置 Webhook 端点(如需要)
### 2.2 Twilio 配置
1. 登录 [Twilio Console](https://console.twilio.com/)
2. 获取以下信息:
- Account SID
- Auth Token
- API Key SID
- API Key Secret
### 2.3 OpenAI 配置
1. 访问 [OpenAI API](https://platform.openai.com/api-keys)
2. 创建新的 API Key
3. 记录 API Key 和 Organization ID
## 3. 应用配置
### 3.1 更新配置文件
编辑 `web-app/config.js` 文件,填入您的 API 密钥:
```javascript
const CONFIG = {
// Supabase 配置
SUPABASE: {
URL: 'your-supabase-url',
ANON_KEY: 'your-supabase-anon-key'
},
// Stripe 配置
STRIPE: {
PUBLISHABLE_KEY: 'your-stripe-publishable-key'
},
// Twilio 配置
TWILIO: {
ACCOUNT_SID: 'your-twilio-account-sid',
API_KEY_SID: 'your-twilio-api-key-sid'
},
// OpenAI 配置
OPENAI: {
API_KEY: 'your-openai-api-key',
ORGANIZATION_ID: 'your-openai-org-id'
}
};
```
### 3.2 环境变量设置
对于生产环境,建议使用环境变量:
```bash
# Supabase
SUPABASE_URL=your-supabase-url
SUPABASE_ANON_KEY=your-supabase-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-supabase-service-key
# Stripe
STRIPE_PUBLISHABLE_KEY=your-stripe-publishable-key
STRIPE_SECRET_KEY=your-stripe-secret-key
# Twilio
TWILIO_ACCOUNT_SID=your-twilio-account-sid
TWILIO_AUTH_TOKEN=your-twilio-auth-token
TWILIO_API_KEY_SID=your-twilio-api-key-sid
TWILIO_API_KEY_SECRET=your-twilio-api-key-secret
# OpenAI
OPENAI_API_KEY=your-openai-api-key
OPENAI_ORGANIZATION_ID=your-openai-org-id
```
## 4. 本地开发环境
### 4.1 启动本地服务器
```bash
# 使用 Python 启动简单的 HTTP 服务器
python -m http.server 8080
# 或使用 Node.js
npx http-server -p 8080
# 或使用 PHP
php -S localhost:8080
```
### 4.2 访问应用
1. 打开浏览器访问 `http://localhost:8080`
2. 点击 "立即体验" 进入应用
3. 测试注册和登录功能
## 5. 生产环境部署
### 5.1 静态文件托管
推荐使用以下平台之一:
- **Vercel**:
```bash
npx vercel --prod
```
- **Netlify**:
```bash
netlify deploy --prod --dir .
```
- **GitHub Pages**:
推送到 GitHub 仓库并启用 Pages
### 5.2 域名配置
1. 购买域名并配置 DNS
2. 在 Supabase 中更新重定向 URL
3. 更新 CORS 设置
### 5.3 HTTPS 配置
确保生产环境使用 HTTPS
- 大多数托管平台自动提供 SSL 证书
- 更新所有 API 配置使用 HTTPS URL
## 6. 功能测试
### 6.1 用户认证测试
1. 测试用户注册流程
2. 验证邮箱确认功能
3. 测试登录和登出
### 6.2 通话功能测试
1. 测试语音通话启动
2. 测试视频通话启动
3. 验证计费功能
4. 检查数据库记录
### 6.3 数据同步测试
1. 验证通话记录保存
2. 测试账单历史显示
3. 检查用户档案更新
## 7. 监控和维护
### 7.1 日志监控
- 监控 Supabase 日志
- 检查 API 调用错误
- 设置错误告警
### 7.2 性能优化
- 监控数据库查询性能
- 优化图片和资源加载
- 实施缓存策略
### 7.3 备份策略
- 定期备份 Supabase 数据库
- 备份用户上传的文档
- 制定灾难恢复计划
## 8. 故障排除
### 8.1 常见问题
**问题**: 无法连接到 Supabase
- 检查 API URL 和密钥是否正确
- 验证网络连接
- 检查 CORS 设置
**问题**: 用户注册失败
- 检查邮箱格式验证
- 验证 Supabase 认证设置
- 检查密码强度要求
**问题**: 通话记录未保存
- 检查用户登录状态
- 验证数据库连接
- 检查 RLS 策略设置
### 8.2 调试技巧
1. 打开浏览器开发者工具
2. 检查控制台错误信息
3. 监控网络请求状态
4. 验证数据库操作日志
## 9. 安全考虑
### 9.1 API 密钥安全
- 永远不要在前端暴露 secret keys
- 使用环境变量存储敏感信息
- 定期轮换 API 密钥
### 9.2 数据安全
- 启用 RLS (行级安全)
- 实施数据加密
- 定期安全审计
### 9.3 用户隐私
- 遵守数据保护法规
- 实施数据删除功能
- 提供隐私政策
## 10. 扩展功能
### 10.1 移动应用
- 使用 React Native 或 Flutter
- 集成相同的 Supabase 后端
- 实现推送通知
### 10.2 管理后台
- 创建管理员界面
- 实施用户管理功能
- 添加数据分析面板
### 10.3 API 扩展
- 创建 RESTful API
- 实施 GraphQL 接口
- 添加第三方集成
---
## 支持
如需技术支持,请联系:
- 邮箱: support@translation-app.com
- 文档: https://docs.translation-app.com
- GitHub: https://github.com/your-org/translation-app