3
3
项目目前处于开发阶段,文档可能未及时更新或存在描述不清,如遇部署失败请提 [ Issue] ( https://github.com/OXeu/Rin/issues/new?assignees=&labels=help+wanted&projects=&template=need-help.md&title=%5BHelp%5D+%E9%97%AE%E9%A2%98%E6%8F%8F%E8%BF%B0 )
4
4
5
5
## 更新日志
6
+
6
7
### v0.2.0 2024-06-07 更新
7
- * 新增 ` S3_CACHE_FOLDER ` 环境变量
8
- * 环境变量加密列表与变量列表更新,仅保留必须加密的环境变量
9
- * 加密变量现在可以通过 Github 直接配置
10
- * Github 变量配置更新,新增必须通过 Github 配置的加密变量(S3 存储,用于 SEO 索引保存)
8
+
9
+ - 新增 ` S3_CACHE_FOLDER ` 环境变量
10
+ - 环境变量加密列表与变量列表更新,仅保留必须加密的环境变量
11
+ - 加密变量现在可以通过 Github 直接配置
12
+ - Github 变量配置更新,新增必须通过 Github 配置的加密变量(S3 存储,用于 SEO 索引保存)
13
+ - ` GITHUB_CLIENT_ID ` 与` GITHUB_CLIENT_SECRET ` 现在添加了前缀` RIN_ ` (` RIN_GITHUB_CLIENT_ID ` ,` RIN_GITHUB_CLIENT_SECRET ` ),以解决 Github 变量不能以 ` GITHUB_ ` 开头的问题,使用 Cloudflare 面板配置的 ` GITHUB_CLIENT_ID ` 与 ` GITHUB_CLIENT_SECRET ` 不受影响
11
14
12
15
## 迁移指南
16
+
13
17
无特别说明时正常的版本更新直接同步 frok 的仓库即可
14
18
15
19
### v0.2.0 迁移指南
16
- * 由于引入 SEO 优化导致需要在 Github 中配置 S3 存储的环境变量,因此需要额外在 Github 中配置以下环境变量(明文,添加到 Variables):
20
+
21
+ - 由于引入 SEO 优化导致需要在 Github 中配置 S3 存储的环境变量,因此需要额外在 Github 中配置以下环境变量(明文,添加到 Variables):
22
+
17
23
``` ini
18
24
SEO_BASE_URL =<SEO 基础地址,用于 SEO 索引,默认为 FRONTEND_URL>
19
25
SEO_CONTAINS_KEY =<SEO 索引时只索引以 SEO_BASE_URL 开头或包含SEO_CONTAINS_KEY 关键字的链接,默认为空>
@@ -24,36 +30,44 @@ S3_REGION=<S3 存储桶所在区域,如使用 Cloudflare R2 填写 auto 即可
24
30
S3_ENDPOINT =<S3 存储桶接入点地址>
25
31
S3_ACCESS_HOST =<S3 存储桶访问地址,末尾无' /' >
26
32
```
33
+
27
34
同时添加以下加密环境变量(加密,添加到 Secrets):
35
+
28
36
``` ini
29
37
S3_ACCESS_KEY_ID =<你的S3AccessKeyID>
30
38
S3_SECRET_ACCESS_KEY =<你的S3SecretAccessKey>
31
39
```
32
- 以上环境变量在之前的版本中是通过 Cloudflare 面板配置的,现在需要迁移到 Github 中配置,新版本的部署 Github Action 会自动其上传到 Cloudflare,之后就不再需要在 Cloudflare 面板中配置这些环境变量了
33
40
41
+ 以上环境变量在之前的版本中是通过 Cloudflare 面板配置的,现在需要迁移到 Github 中配置,新版本的部署 Github Action 会自动其上传到 Cloudflare,之后就不再需要在 Cloudflare 面板中配置这些环境变量了
34
42
35
43
## 其他文档
44
+
36
45
[ 环境变量列表] ( ./ENV.md )
37
46
38
- > [ !TIP]
47
+ > [ !TIP]
39
48
> 下文代码块中若出现形如 <文字> 的内容表示需要根据文字提示替换为自己的内容(` < ` 和` > ` 不要保留),如:
49
+ >
40
50
> ```
41
51
> bun wrangler d1 create <数据库名称>
42
52
> ```
43
- > 表示将 <数据库名称> 替换为你喜欢的名称,这里使用 rin替换:
53
+ >
54
+ > 表示将 <数据库名称> 替换为你喜欢的名称,这里使用 rin 替换:
55
+ >
44
56
> ```
45
57
> bun wrangler d1 create rin
46
58
> ```
59
+ >
47
60
> 这就是最终的命令
48
61
49
-
50
62
打开仓库页面:https://github.com/OXeu/Rin
51
- ## Fork
63
+
64
+ ## Fork
65
+
52
66
点击 Fork 按钮 fork 出一个新仓库
53
67

54
68
55
-
56
69
## 前端
70
+
57
71
登录 [Cloudflare](https://dash.cloudflare.com) 控制台,进入 `Workers 和 Pages` 页面,点击`创建应用程序`,选择 Pages
58
72
59
73

@@ -62,22 +76,24 @@ S3_SECRET_ACCESS_KEY=<你的S3SecretAccessKey>
62
76
63
77

64
78
65
-
66
79
点击 `开始设置` 进入配置页面:
67
80
68
81
构建设置按照填入以下内容:
82
+
69
83
```
70
84
框架预设:无
71
85
构建命令:bun b
72
86
构建输出目录:client/dist
73
87
路径:<留空>
74
88
```
75
- 
76
89
90
+ 
77
91
78
92
环境变量复制以下内容,根据自身情况修改变量值:
79
- >[!IMPORTANT]
80
- 最后两行环境变量 `SKIP_DEPENDENCY_INSTALL` 和 `UNSTABLE_PRE_BUILD` 为配置 Cloudflare 使用 Bun 进行构建的参数,不要修改
93
+
94
+ > [!IMPORTANT]
95
+ > 最后两行环境变量 `SKIP_DEPENDENCY_INSTALL` 和 `UNSTABLE_PRE_BUILD` 为配置 Cloudflare 使用 Bun 进行构建的参数,不要修改
96
+
81
97
```ini
82
98
NAME=Xeu # 昵称,显示在左上角
83
99
DESCRIPTION=杂食动物 # 个人描述,显示在左上角昵称下方
@@ -87,8 +103,8 @@ PAGE_SIZE=5 # 默认分页大小,推荐 5
87
103
SKIP_DEPENDENCY_INSTALL=true
88
104
UNSTABLE_PRE_BUILD=asdf install bun latest && asdf global bun latest && bun i
89
105
```
90
- ![ 1000000660] ( https://github.com/OXeu/Rin/assets/36541432/0fe9276f-e16f-4b8a-87c5-14de582c9a3a )
91
106
107
+ ![ 1000000660] ( https://github.com/OXeu/Rin/assets/36541432/0fe9276f-e16f-4b8a-87c5-14de582c9a3a )
92
108
93
109
点击` 保存并部署 ` ,等待构建部署,不出意外的话约 30s 后即可部署完成:
94
110
@@ -98,8 +114,7 @@ UNSTABLE_PRE_BUILD=asdf install bun latest && asdf global bun latest && bun i
98
114
99
115
![ 1000000662] ( https://github.com/OXeu/Rin/assets/36541432/57c61ad6-c324-48e4-a28f-a1708fd7d41a )
100
116
101
-
102
- 前端就全部部署完成啦🎉
117
+ 前端就全部部署完成啦 🎉
103
118
104
119
### 故障排除
105
120
@@ -130,14 +145,14 @@ UNSTABLE_PRE_BUILD=asdf install bun latest && asdf global bun latest && bun i
130
145
后端部署比较繁琐,但经过几次的优化部署流程,现在已经大大简化了
131
146
132
147
### 获取用户 ID 与 API 令牌
148
+
133
149
参照 https://developers.cloudflare.com/workers/wrangler/ci-cd/ 来配置 Github Actions 所需的 Cloudflare 登录环境变量
134
150
135
151
ID 随意点击一个自己绑定的域名,进入后在右侧(需要向下滑动一段距离)可以找到` 账户ID `
136
152
137
153
创建 API 令牌:点击右上角` 头像 ` > ` 我的个人资料 ` > ` API 令牌 ` > ` 创建令牌 ` ,模板选择` 编辑 Cloudflare Workers ` :
138
154
![ 1000000663] ( https://github.com/OXeu/Rin/assets/36541432/3a34a2ad-b993-47fe-965d-31cca4a8e92a )
139
155
140
-
141
156
创建完成后保存令牌
142
157
143
158
### 配置 Github Action
@@ -150,6 +165,7 @@ CLOUDFLARE_API_TOKEN=<你的令牌>
150
165
```
151
166
152
167
同时你可以在` Actions secrets and variables ` 的 ` Variables ` 中创建以下变量:
168
+
153
169
``` ini
154
170
DB_NAME =<数据库名称,默认rin>
155
171
WORKER_NAME =<Cloudflare Worker 名称,默认rin-server>
@@ -163,26 +179,27 @@ S3_REGION=<S3 存储桶所在区域,如使用 Cloudflare R2 填写 auto 即可
163
179
S3_ENDPOINT =<S3 存储桶接入点地址>
164
180
S3_ACCESS_HOST =<S3 存储桶访问地址,末尾无' /' >
165
181
```
182
+
166
183
> [ !TIP]
167
184
> 关于 SEO 工作原理与配置请参考 [ SEO 文档] ( ./SEO.md )
168
185
169
186
完成准备工作以后即可在 Github Action 中手动触发一次 Workflow,一切正常的话很快就能部署完成
170
187
171
- 这样服务端就部署好了,但是目前仍然不能运行,我们还需要配置 Github OAuth用于登录和 S3 存储用于存储图片
172
-
188
+ 这样服务端就部署好了,但是目前仍然不能运行,我们还需要配置 Github OAuth 用于登录和 S3 存储用于存储图片
173
189
174
190
> [ !TIP]
175
191
> 在 v0.2.0 版本后,不再需要回到 Cloudflare 面板配置后端域名与一些敏感的环境变量,所有环境变量都可以通过 Github 创建对应的密钥来添加,如果你在更早的版本中部署过,需要将环境变量迁移到 Github 中
176
192
177
193
> ~~ 回到 Cloudflare 面板配置后端域名与一些敏感的环境变量~~
178
- >
194
+ >
179
195
> ~~ 在 ` 设置 ` > ` 触发器 ` > ` 自定义域 ` 处可以自定义后端的域名,默认也有分配一个` workers.dev ` 的域名~~
180
- >
196
+ >
181
197
> ~~ 在 ` 设置 ` > ` 变量 ` > ` 环境变量 ` 处编辑变量,点击添加变量,复制粘贴以下内容至变量名处即可自动添加上所有环境变量,之后再根据自己的具体配置修改变量值:~~
182
- 在 v0.2.0 版本后,以下所有环境变量都建议通过在 Github 创建对应的密钥来添加,添加方式与上文添加 ` CLOUDFLARE_ACCOUNT_ID ` 与 ` CLOUDFLARE_API_TOKEN ` 相同,以下是环境变量列表:
198
+ > 在 v0.2.0 版本后,以下所有环境变量都建议通过在 Github 创建对应的密钥来添加,添加方式与上文添加 ` CLOUDFLARE_ACCOUNT_ID ` 与 ` CLOUDFLARE_API_TOKEN ` 相同,以下是环境变量列表:
199
+
183
200
``` ini
184
- GITHUB_CLIENT_ID =<你的GithubClientID>
185
- GITHUB_CLIENT_SECRET =<你的GithubClientSecret>
201
+ RIN_GITHUB_CLIENT_ID =<你的GithubClientID>
202
+ RIN_GITHUB_CLIENT_SECRET =<你的GithubClientSecret>
186
203
JWT_SECRET =<JWT 认证所需密钥,可为常规格式的任意密码>
187
204
S3_ACCESS_KEY_ID =<你的S3AccessKeyID>
188
205
S3_SECRET_ACCESS_KEY =<你的S3SecretAccessKey>
@@ -196,15 +213,12 @@ S3_SECRET_ACCESS_KEY=<你的S3SecretAccessKey>
196
213
https://<你的后端地址>/user/github/callback
197
214
```
198
215
199
- 这里附上我的参数
216
+ 这里附上我的参数
200
217
![ Github OAuth 配置] ( https://github.com/OXeu/Rin/assets/36541432/74ab8d16-93ca-4919-beec-4beb7a2003a6 )
201
218
219
+ 随后配置环境变量中 OAuth 部分
202
220
203
-
204
-
205
- 随后配置环境变量中 OAuth 部分
206
-
207
- 以下是具体的配置,` GITHUB_CLIENT_ID ` 填写 Github OAuth App 中的` Client ID ` ,` GITHUB_CLIENT_SECRET ` 填写在 Github OAuth App 点击 ` Generate a new client secret ` 后的 ` Client secret ` ,注意每次创建后只展示一次,后续无法查看,如果不慎丢失重新生成一个新的即可
221
+ 以下是具体的配置,` RIN_GITHUB_CLIENT_ID ` 填写 Github OAuth App 中的` Client ID ` ,` RIN_GITHUB_CLIENT_SECRET ` 填写在 Github OAuth App 点击 ` Generate a new client secret ` 后的 ` Client secret ` ,注意每次创建后只展示一次,后续无法查看,如果不慎丢失重新生成一个新的即可
208
222
209
223
## 创建 R2 桶
210
224
@@ -213,25 +227,29 @@ https://<你的后端地址>/user/github/callback
213
227
Cloudflare 面板中点击 ` R2 ` > ` 创建存储桶 ` ,填写名称,选择距离自己近的位置:
214
228
![ 1000000665] ( https://github.com/OXeu/Rin/assets/36541432/17c5ad7b-8a3a-49b2-845a-8d043484aa63 )
215
229
216
-
217
230
创建存储桶之后进入存储桶详情页 > ` 设置 ` ,复制 S3 API 地址,去除末尾的存储桶名称后填入 ` S3_ENDPOINT ` ,如:
231
+
218
232
``` ini
219
233
S3_BUCKET =image # 桶名称
220
234
S3_REGION =auto # 地区 auto 不用修改
221
235
S3_ENDPOINT =https://8879900e5e1219fb745c9f69b086565a.r2.cloudflarestorage.com
222
236
```
237
+
223
238
然后在` 公开访问 ` 处绑定一个域名用于访问资源,绑定的域名对应于` S3_ACCESS_HOST ` 环境变量:
239
+
224
240
``` ini
225
241
S3_ACCESS_HOST =https://image.xeu.life
226
242
```
243
+
227
244
然后创建一个 API 令牌用于访问存储桶,可参考 https://developers.cloudflare.com/r2/api/s3/tokens/ ,这里不再赘述,拿到 ID 和 TOKEN 对应于` S3_ACCESS_KEY_ID ` 和 ` S3_SECRET_ACCESS_KEY ` 变量,填入 Workers 的环境变量中
228
245
229
246
至此后端就已经部署完成了,记得将前端的 API_URL 修改为后端的地址,与此同时,如果你需要 WebHook 通知的话,还可在后端配置环境变量` WEBHOOK_URL ` 为你的 Webhook 地址,在新增评论时会像目标 URL 发送一条 POST 消息,消息格式为:
247
+
230
248
``` json
231
249
{
232
250
"content" : " 消息内容"
233
251
}
234
252
```
235
253
236
- > [ !TIP]
237
- 在所有环境变量调试完毕后可点击加密按钮加密环境变量(只保留FRONTEND_URL和S3_FOLDER ),这样下次部署时加密的环境变量就不会覆盖/删除了
254
+ > [ !TIP]
255
+ > 在所有环境变量调试完毕后可点击加密按钮加密环境变量(只保留 FRONTEND_URL 和 S3_FOLDER ),这样下次部署时加密的环境变量就不会覆盖/删除了
0 commit comments