Beam 是一个简单的工具,允许成员撰写帖子以在一个组织中共享,可以把它想象成一个极轻量级的内部博客,Beam 使用 Next.js 构建,并使用 PlanetScale 数据库进行存储。
其功能包括一个简单的基于 Markdown 的编辑器,带有图像预览和拖放、评论和点赞、搜索、带有黑夜模式支持的响应式布局页面,以及隐藏帖子的管理员角色。
设置
安装依赖项
npm install
创建数据库
- 创建 PlanetScale 数据库
- 创建一个连接字符串以连接到您的数据库。选择Prisma作为格式
- 设置环境变量:
cp .env.example .env
-
使用来自 PlanetScale 的连接字符串打开
.env
并设置变量DATABASE_URL
- 创建数据库架构:
cp .env.example .env
配置身份验证
默认情况下,Beam 使用 GitHub 进行身份验证,但如果您愿意,也可以使用 Okta 。
-
在 GitHub 上创建 OAuth 应用程序(注意,必须创建一个单独的应用程序以供生产使用)
- 转到开发人员设置
- 单击新建 OAuth 应用程序
-
对于回调 URL,输入
http://localhost:3000/api/auth/callback/github
- 创建应用程序后,单击生成新的客户端密码
-
在里面设置环境变量
.env
-
设置
AUTH_PROVIDER
为github
-
设置
GITHUB_ID
为客户端 ID 值 -
设置
GITHUB_SECRET
为上面生成的秘密值 -
设置
GITHUB_ALLOWED_ORG
为您的 Beam 成员设置所属的 GitHub 组织名称 -
设置
NEXTAUTH_SECRET
为随机秘密,很好的资源。
-
设置