一个基于 Node.js/Express + Supabase 的在线 HTML/Markdown/SVG/Mermaid 代码片段分享工具,支持密码保护、内容渲染和云端部署,适配 Vercel Serverless 环境。
- 在线分享 HTML、Markdown、SVG、Mermaid 代码片段
- 支持密码保护,私密分享
- 支持内容类型自动检测与高亮渲染
- 支持最近页面列表
- 支持用户登录认证(可选)
- 兼容 Vercel Serverless 部署,所有数据存储于 Supabase
- Node.js 16+
- Supabase 账号(用于数据库和认证服务)
npm install
在项目根目录创建 .env
文件,内容示例:
SUPABASE_URL=your-supabase-project-url
SUPABASE_ANON_KEY=your-supabase-anon-key
AUTH_ENABLED=true
AUTH_PASSWORD=your-admin-password
- 在 Supabase 控制台创建新项目
- 在 SQL 编辑器中运行
supabase/migrations/20240321000000_initial_schema.sql
文件 - 获取项目 URL 和 anon key,填入
.env
文件
npm run dev
{
"version": 2,
"builds": [{ "src": "app.js", "use": "@vercel/node" }],
"routes": [{ "src": "/(.*)", "dest": "app.js" }]
}
在 Vercel 控制台为项目添加以下环境变量:
SUPABASE_URL
SUPABASE_ANON_KEY
AUTH_ENABLED
(如需登录认证)AUTH_PASSWORD
(如需登录认证)
- 安装 Vercel CLI(如未安装):
npm install -g vercel
- 登录 Vercel:
vercel login
- 部署(推荐生产环境):
vercel --prod
Share-AI-express/
├── app.js # 主应用入口
├── models/
│ ├── db.js # Supabase 数据库封装
│ └── pages.js # 页面数据操作
├── routes/
│ └── pages.js # API 路由
├── middleware/
│ └── auth.js # 认证中间件
├── utils/ # 工具函数
├── public/ # 静态资源
├── views/ # EJS 模板
├── supabase/
│ └── migrations/ # 数据库迁移文件
├── config.js # 配置加载
├── vercel.json # Vercel 部署配置
├── package.json
└── ...
- Vercel 环境不支持本地文件存储,所有会话和数据均存储于 Supabase。
- 首次部署会自动建表,如遇权限问题请检查 Supabase 的 RLS 策略。
- 如需本地测试,需先配置好 Supabase 环境变量。
- 如需关闭认证,将
AUTH_ENABLED
设为false
。 - 如需自定义端口,请修改
config.js
或设置PORT
环境变量。 - Supabase 免费版有使用限制,请参考 Supabase 定价。
如有问题或建议,欢迎提交 Issue 或 PR。