Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: improve MongoDB Atlas guide #705

Merged
merged 3 commits into from
May 24, 2024
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 29 additions & 67 deletions docs/backend.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,33 +94,20 @@ Vercel 部署的环境需配合 1.4.0 以上版本的 twikoo.js 使用

[查看视频教程](https://www.bilibili.com/video/BV1Fh411e7ZH)

1. 申请 [MongoDB](https://www.mongodb.com/cloud/atlas/register) 账号
2. 创建免费 MongoDB 数据库,区域推荐选择 `AWS / N. Virginia (us-east-1)`
3. 在 Database Access 页面点击 Add New Database User 创建数据库用户,Authentication Method 选 Password,在 Password Authentication 下设置数据库用户名和密码,用户名和密码可包含数字和大小写字母,请勿包含特殊符号。点击 Database User Privileges 下方的 Add Built In Role,Select Role 选择 Atlas Admin,最后点击 Add User

![](./static/mongodb-1.png)

4. 在 Network Access 页面点击 Add IP Address,Access List Entry 输入 `0.0.0.0/0`(允许所有 IP 地址的连接),点击 Confirm

![](./static/mongodb-2.png)

5. 在 Database 页面点击 Connect,连接方式选择 Drivers,并记录数据库连接字符串,请将连接字符串中的 `<username>:<password>` 修改为刚刚创建的数据库 `用户名:密码`

![](./static/mongodb-3.png)

6. 申请 [Vercel](https://vercel.com/signup) 账号
7. 点击以下按钮将 Twikoo 一键部署到 Vercel<br>
1. 申请 [MongoDB Atlas](./mongodb-atlas.md) 账号,获取 MongoDB 连接字符串
2. 申请 [Vercel](https://vercel.com/signup) 账号
3. 点击以下按钮将 Twikoo 一键部署到 Vercel<br>

[![Deploy](https://vercel.com/button)](https://vercel.com/import/project?template=https://github.com/twikoojs/twikoo/tree/main/src/server/vercel-min)

8. 进入 Settings - Environment Variables,添加环境变量 `MONGODB_URI`,值为前面记录的数据库连接字符串
9. 进入 Settings - Deployment Protection,设置 Vercel Authentication 为 Disabled,并 Save
4. 进入 Settings - Environment Variables,添加环境变量 `MONGODB_URI`,值为前面记录的数据库连接字符串
5. 进入 Settings - Deployment Protection,设置 Vercel Authentication 为 Disabled,并 Save

![](./static/vercel-1.png)

10. 进入 Deployments , 然后在任意一项后面点击更多(三个点) , 然后点击 Redeploy , 最后点击下面的 Redeploy
11. 进入 Overview,点击 Domains 下方的链接,如果环境配置正确,可以看到 “Twikoo 云函数运行正常” 的提示
12. Vercel Domains(包含 `https://` 前缀,例如 `https://xxx.vercel.app`)即为您的环境 id
6. 进入 Deployments , 然后在任意一项后面点击更多(三个点) , 然后点击 Redeploy , 最后点击下面的 Redeploy
7. 进入 Overview,点击 Domains 下方的链接,如果环境配置正确,可以看到 “Twikoo 云函数运行正常” 的提示
8. Vercel Domains(包含 `https://` 前缀,例如 `https://xxx.vercel.app`)即为您的环境 id

## Railway 部署

Expand Down Expand Up @@ -161,78 +148,52 @@ Netlify 部署的环境需配合 1.4.0 以上版本的 twikoo.js 使用
Netlify 免费等级(Functions Level 0)支持每月 125,000 请求次数和 100 小时函数计算时长
:::

1. 申请 [MongoDB](https://www.mongodb.com/cloud/atlas/register) 账号
2. 创建免费 MongoDB 数据库,区域推荐选择 `AWS / N. Virginia (us-east-1)`
3. 在 Database Access 页面点击 Add New Database User 创建数据库用户,Authentication Method 选 Password,在 Password Authentication 下设置数据库用户名和密码,用户名和密码可包含数字和大小写字母,请勿包含特殊符号。点击 Database User Privileges 下方的 Add Built In Role,Select Role 选择 Atlas Admin,最后点击 Add User

![](./static/mongodb-1.png)

4. 在 Network Access 页面点击 Add IP Address,Access List Entry 输入 `0.0.0.0/0`(允许所有 IP 地址的连接),点击 Confirm

![](./static/mongodb-2.png)

5. 在 Database 页面点击 Connect,连接方式选择 Drivers,并记录数据库连接字符串,请将连接字符串中的 `<username>:<password>` 修改为刚刚创建的数据库 `用户名:密码`

![](./static/mongodb-3.png)

6. 申请并登录 [Netlify](https://app.netlify.com) 账号,创建一个 Team
7. 打开 [twikoojs/twikoo-netlify](https://github.com/twikoojs/twikoo-netlify) 点击 fork 将仓库 fork 到自己的账号下
8. 回到 Netlify,点击 Add new site - Import an existing project
1. 申请 [MongoDB Atlas](./mongodb-atlas.md) 账号,获取 MongoDB 连接字符串
2. 申请并登录 [Netlify](https://app.netlify.com) 账号,创建一个 Team
3. 打开 [twikoojs/twikoo-netlify](https://github.com/twikoojs/twikoo-netlify) 点击 fork 将仓库 fork 到自己的账号下
4. 回到 Netlify,点击 Add new site - Import an existing project

![](./static/netlify-1.png)

9. 点击 Deploy with GitHub,如果未授权 GitHub 账号,先授权,然后选择前面 fork 的 twikoo-netlify 项目
5. 点击 Deploy with GitHub,如果未授权 GitHub 账号,先授权,然后选择前面 fork 的 twikoo-netlify 项目

![](./static/netlify-2.png)

10. 点击 Add environment variables - New variable,Key 输入 `MONGODB_URI`,Value 输入前面记录的数据库连接字符串,点击 Deploy twikoo-netlify
6. 点击 Add environment variables - New variable,Key 输入 `MONGODB_URI`,Value 输入前面记录的数据库连接字符串,点击 Deploy twikoo-netlify

![](./static/netlify-3.png)

11. 部署完成后,点击 Domain settings - 右侧 Options - Edit site name,可以设置属于自己的三级域名(`https://xxx.netlify.app`)
7. 部署完成后,点击 Domain settings - 右侧 Options - Edit site name,可以设置属于自己的三级域名(`https://xxx.netlify.app`)

![](./static/netlify-4.png)

12. 进入 Site overview,点击上方的链接,如果环境配置正确,可以看到 “Twikoo 云函数运行正常” 的提示
8. 进入 Site overview,点击上方的链接,如果环境配置正确,可以看到 “Twikoo 云函数运行正常” 的提示

![](./static/netlify-5.png)

13. 云函数地址(包含 `https://` 前缀和 `/.netlify/functions/twikoo` 后缀,例如 `https://xxx.netlify.app/.netlify/functions/twikoo`)即为您的环境 id
9. 云函数地址(包含 `https://` 前缀和 `/.netlify/functions/twikoo` 后缀,例如 `https://xxx.netlify.app/.netlify/functions/twikoo`)即为您的环境 id

## Hugging Face 部署

1. 申请 [MongoDB](https://www.mongodb.com/cloud/atlas/register) 账号
2. 创建免费 MongoDB 数据库
3. 在 Database Access 页面点击 Add New Database User 创建数据库用户,Authentication Method 选 Password,在 Password Authentication 下设置数据库用户名和密码,用户名和密码可包含数字和大小写字母,请勿包含特殊符号。点击 Database User Privileges 下方的 Add Built In Role,Select Role 选择 Atlas Admin,最后点击 Add User

![](./static/mongodb-1.png)

4. 在 Network Access 页面点击 Add IP Address,Access List Entry 输入 `0.0.0.0/0`(允许所有 IP 地址的连接),点击 Confirm

![](./static/mongodb-2.png)

5. 在 Database 页面点击 Connect,连接方式选择 Drivers,并记录数据库连接字符串,请将连接字符串中的 `<username>:<password>` 修改为刚刚创建的数据库 `用户名:密码`

![](./static/mongodb-3.png)

6. 申请 [Hugging Face](https://huggingface.co/join) 账号
7. 登录,点击 Spaces - Create new Space
1. 申请 [MongoDB Atlas](./mongodb-atlas.md) 账号,获取 MongoDB 连接字符串
2. 申请 [Hugging Face](https://huggingface.co/join) 账号
3. 登录,点击 Spaces - Create new Space

![](./static/hugging-1.png)

8. 输入 Space name,Select the Space SDK 选择 Docker,Choose a Docker template 选择 Blank,Space hardware 选择 FREE,选择 Public,点击 Create Space
4. 输入 Space name,Select the Space SDK 选择 Docker,Choose a Docker template 选择 Blank,Space hardware 选择 FREE,选择 Public,点击 Create Space

![](./static/hugging-2.png)

9. 进入刚刚创建的 Space,点击页面上方的 Settings,滚动到 Variables and secrets 部分,点击 New secret,Name 输入 `MONGODB_URI`,Value 输入前面记录的数据库连接字符串,点击 Save
5. 进入刚刚创建的 Space,点击页面上方的 Settings,滚动到 Variables and secrets 部分,点击 New secret,Name 输入 `MONGODB_URI`,Value 输入前面记录的数据库连接字符串,点击 Save

![](./static/hugging-3.png)

10. 点击页面上方的 Files - Add file - Create a new file
6. 点击页面上方的 Files - Add file - Create a new file

![](./static/hugging-4.png)

11. 在 Name your file 中输入 `Dockerfile`,在 Edit 区域输入以下内容
7. 在 Name your file 中输入 `Dockerfile`,在 Edit 区域输入以下内容

```Dockerfile
FROM imaegoo/twikoo
Expand All @@ -242,16 +203,17 @@ EXPOSE 7860

![](./static/hugging-5.png)

12. 点击 Commit new file to main
13. 点击右上角 Settings 右方的菜单(三个点)图标 - Embed this Space,Direct URL 下的内容(例如 `https://xxx-xxx.hf.space`)即为您的环境 id
8. 点击 Commit new file to main
9. 点击右上角 Settings 右方的菜单(三个点)图标 - Embed this Space,Direct URL 下的内容(例如 `https://xxx-xxx.hf.space`)即为您的环境 id

![](./static/hugging-6.png)

## AWS Lambda 部署

1. 注册 AWS 账号并配置 Terraform CLI。
2. 参考 `src/server/aws-lambda/terraform` 目录中 Terraform 代码创建 AWS 资源。
3. 部署完成后,Terraform 会将 `lambda_function_url` 打印在屏幕上,您也可以使用 `terraform output` 获取这一 URL,如:
2. 如需使用托管的 MongoDB 数据库,可申请 [MongoDB Atlas](./mongodb-atlas.md) 账号。
3. 参考 `src/server/aws-lambda/terraform` 目录中 Terraform 代码创建 AWS 资源。
4. 部署完成后,Terraform 会将 `lambda_function_url` 打印在屏幕上,您也可以使用 `terraform output` 获取这一 URL,如:

```
$ terraform output
Expand Down
21 changes: 21 additions & 0 deletions docs/mongodb-atlas.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# MongoDB Atlas

MongoDB Atlas 是 MongoDB Inc 提供的 MongoDB 数据库托管服务。免费账户可以永久使用 500 MiB 的数据库,足够存储 Twikoo 评论使用。

1. 申请 [MongoDB AtLas](https://www.mongodb.com/cloud/atlas/register) 账号
2. 创建免费 MongoDB 数据库,区域推荐选择 `AWS / Oregon (us-west-2)`,该数据中心基建成熟,故障率低,且使用 Oregon 州的清洁能源,较为环保
imaegoo marked this conversation as resolved.
Show resolved Hide resolved
3. 在 Database Access 页面点击 Add New Database User 创建数据库用户,Authentication Method 选 Password,在 Password Authentication 下设置数据库用户名和密码,建议点击 Auto Generate 自动生成一个不含特殊符号的强壮密码并妥善保存。点击 Database User Privileges 下方的 Add Built In Role,Select Role 选择 Atlas Admin,最后点击 Add User

![](./static/mongodb-1.png)

4. 在 Network Access 页面点击 Add IP Address 添加网络白名单。因为 Vercel / Netlify / Lambda 的出口地址不固定,因此 Access List Entry 输入 `0.0.0.0/0`(允许所有 IP 地址的连接)即可。如果 Twikoo 部署在自己的服务器上,这里可以填入固定 IP 地址。点击 Confirm 保存

![](./static/mongodb-2.png)

5. 在 Database 页面点击 Connect,连接方式选择 Drivers,并记录数据库连接字符串,请将连接字符串中的 `<username>:<password>` 修改为刚刚创建的数据库 `用户名:密码`

![](./static/mongodb-3.png)

6. (可选)默认的连接字符串没有指定数据库名称,Twikoo 会连接到默认的名为 `test` 的数据库。如果需要在同一个 MongoDB 里运行其他业务或供多个 Twikoo 实例使用,建立加入数据库名称并配置对应的 ACL。

连接字符串包含了连接到 MongoDB 数据库的所有信息,一旦泄露会导致评论被任何人添加、修改、删除,并有可能获取你的 SMTP、图床 token 等信息。请妥善记录这一字符串,之后需要填入到 Twikoo 的部署平台里。
Loading