Beam 是一个简单的工具,允许成员撰写帖子并在组织内分享。可以将其视为一个轻量级的内部博客。功能包括简单的基于 Markdown 的编辑器带预览功能、图片拖放、评论和点赞、搜索、清晰响应式布局并支持深色模式,以及用于隐藏帖子的管理员角色。
设置
安装依赖
npm install
创建数据库
- 创建 PlanetScale 数据库
- 创建连接字符串以连接到您的数据库。选择 Prisma 格式
- 或者,您可以使用 pscale CLI 或 GitHub Actions 生成 PlanetScale 数据库和连接字符串。查看说明。
- 设置环境变量:
cp .env.example .env
- 打开
.env
并使用 PlanetScale 的连接字符串设置DATABASE_URL
变量 - 创建数据库架构:
npx prisma db push
配置身份验证
默认提供 GitHub 和 Okta 身份验证设置,但得益于 NextAuth.js,您可以使用大多数其他常见身份验证提供商配置 Beam 实例。
Beam 使用 NextAuth.js,因此如果您更喜欢使用它支持的众多提供商之一,可以自定义安装。只需更新 lib/auth.ts
文件以添加您自己的提供商。
启用图片上传(可选)
要启用图片上传,请将环境变量 NEXT_PUBLIC_ENABLE_IMAGE_UPLOAD
设置为 true
。
Beam 使用 Cloudinary 存储上传的图片。您可以注册一个免费账户。
- 在 Cloudinary 仪表板上,在账户设置中查找以下值:Cloud Name、API Key、API Secret。
- 使用以下变量更新
.env
:CLOUDINARY_CLOUD_NAME
:Cloud NameCLOUDINARY_API_KEY
:API KeyCLOUDINARY_API_SECRET
:API Secret
配置 Slack 通知(可选)
如果您希望将新的 Beam 帖子发布到 Slack 频道,请按照这些说明操作。
在本地运行应用
npm run dev
在浏览器中打开 http://localhost:3000。
使用 GitHub 进行身份验证
部署到 Vercel
一键部署:
⚠️ 部署后记得更新回调 URL。