297 lines
5.9 KiB
Markdown
297 lines
5.9 KiB
Markdown
|
# 翻译服务应用 - 数据库集成部署指南
|
|||
|
|
|||
|
## 概述
|
|||
|
|
|||
|
本指南将帮助您完成翻译服务应用的数据库集成和部署,包括 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
|