阿K的分享 - 前后端一体化项目(部署在 Vercel)
这是一个部署在 Vercel 上的前后端一体化项目,使用 Vue 3 前端框架、Serverless Functions 和 Supabase 数据库。
前端:
- Vue 3 (Composition API)
- Element Plus (UI 组件库)
- Tailwind CSS (样式框架)
- Vite (构建工具)
- Axios (HTTP 客户端)
后端:
- Vercel Serverless Functions (Python)
- Supabase (PostgreSQL 数据库)
FeiShu-Frontend/
├── src/ # Vue 3 前端源码
│ ├── components/ # Vue 组件
│ │ ├── Header.vue # 页面头部
│ │ ├── PostCard.vue # 帖子卡片
│ │ ├── PostList.vue # 帖子列表
│ │ └── PostModal.vue # 帖子详情弹窗
│ ├── composables/ # 组合式函数
│ │ └── usePosts.js # 帖子数据管理
│ ├── utils/ # 工具函数
│ │ ├── api.js # API 请求封装
│ │ └── format.js # 格式化工具
│ ├── App.vue # 根组件
│ └── main.js # 入口文件
├── api/ # Serverless Functions(后端 API)
│ ├── posts.py # GET /api/posts - 获取帖子列表
│ └── webhook.py # POST /api/webhook - Telegram Webhook
├── public/ # 静态资源
├── index.html # HTML 入口
├── package.json # Node.js 依赖
├── vite.config.js # Vite 配置
├── tailwind.config.js # Tailwind CSS 配置
├── vercel.json # Vercel 配置
├── requirements.txt # Python 依赖
├── .env # 环境变量(不提交到 Git)
└── .env.example # 环境变量示例
- 访问 Supabase 并创建账号
- 创建新项目
- 在 SQL Editor 中执行
database-setup.sql文件中的 SQL 语句创建表
重要:请使用项目根目录的 database-setup.sql 文件,它包含了完整的表结构和安全策略。
主要表:gold_signals(黄金行情信号分享)
- 获取项目的 URL 和 API Key(在 Settings → API)
-
安装 Vercel CLI(如果还没安装):
npm install -g vercel
-
在项目目录中运行:
vercel
-
按照提示完成部署
-
在 Vercel Dashboard 中配置环境变量:
SUPABASE_URL: 你的 Supabase 项目 URLSUPABASE_KEY: 你的 Supabase Anon KeyTELEGRAM_WEBHOOK_SECRET: Telegram Webhook 密钥(可选)
如果需要使用 Telegram Bot 功能:
- 获取你的 Vercel 部署 URL(如
https://your-project.vercel.app) - 设置 Telegram Webhook:
curl -X POST "https://api.telegram.org/bot<YOUR_BOT_TOKEN>/setWebhook" \ -H "Content-Type: application/json" \ -d '{"url": "https://your-project.vercel.app/api/webhook"}'
获取帖子列表
查询参数:
limit: 返回数量限制(默认 100,最大 1000)
响应示例:
{
"success": true,
"count": 10,
"data": [
{
"id": 1,
"content": "帖子内容",
"image_path": null,
"source": "telegram",
"is_filtered": false,
"filter_reason": null,
"created_at": "2024-01-01T00:00:00Z",
"feishu_notified": false,
"qq_notified": false
}
]
}Telegram Webhook 接口(需要配置 Telegram Bot)
# 安装前端依赖
npm install
# 安装 Python 依赖(用于本地测试 Serverless Functions)
pip install -r requirements.txt复制 .env.example 为 .env 并填写配置:
cp .env.example .env编辑 .env 文件,填入你的 Supabase 配置:
SUPABASE_URL=your-supabase-url
SUPABASE_KEY=your-supabase-anon-key
TELEGRAM_WEBHOOK_SECRET=your-webhook-secret方式一:仅运行前端(推荐用于前端开发)
npm run dev访问 http://localhost:5173
方式二:运行完整项目(前端 + Serverless Functions)
# 需要先安装 Vercel CLI
npm install -g vercel
# 运行完整项目
vercel dev访问 http://localhost:3000
npm run build构建产物会输出到 dist/ 目录。
- ✅ 现代化 Vue 3 架构(Composition API)
- ✅ Element Plus 企业级 UI 组件
- ✅ 响应式设计,完美支持移动端和 PC
- ✅ 时间轴样式展示,美观优雅
- ✅ 点击卡片打开模态框查看完整内容
- ✅ 支持图片展示
- ✅ 加载状态和错误提示
- ✅ 防 XSS 攻击
- ✅ 前后端一体化部署
- ✅ Serverless 架构,按需付费
- ✅ 自动 HTTPS 和全球 CDN
- ✅ 友情提示弹窗(每次刷新显示)
- ✅ 不需要备案(Vercel 在国外)
- ✅ 自动 HTTPS(免费 SSL 证书)
- ✅ 全球 CDN(访问速度快)
- ✅ 免费套餐(足够个人项目使用)
- ✅ 自动部署(Git push 即部署)
- ✅ 前后端一体化(无需分别部署)
- Vercel Serverless Functions 有执行时间限制(免费版 10 秒)
- 如果没有配置 Supabase,API 会返回假数据用于测试
- 前端会自动使用相对路径调用 API,无需配置域名
- 部署在 Vercel 上不需要域名备案(服务器在国外)
- Chrome 90+
- Firefox 88+
- Safari 14+
- Edge 90+
详细的技术文档请查看 docs 目录: