-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathatom.xml
More file actions
525 lines (266 loc) · 210 KB
/
atom.xml
File metadata and controls
525 lines (266 loc) · 210 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Backup of old blog</title>
<subtitle>Hajeekn's Blog</subtitle>
<link href="https://blog.slqwq.cn/atom.xml" rel="self"/>
<link href="https://blog.slqwq.cn/"/>
<updated>2023-02-01T11:29:35.177Z</updated>
<id>https://blog.slqwq.cn/</id>
<author>
<name>Hajeekn</name>
</author>
<generator uri="https://hexo.io/">Hexo</generator>
<entry>
<title>将你的网站部署到 Cloudflare 加快访问速度</title>
<link href="https://blog.slqwq.cn/2023/posts/lyr15g/index.html"/>
<id>https://blog.slqwq.cn/2023/posts/lyr15g/index.html</id>
<published>2023-02-01T11:29:35.177Z</published>
<updated>2023-02-01T11:29:35.177Z</updated>
<content type="html"><![CDATA[<p>本文章首发于<a href="https://www.yuque.com/ladjeek/ygg4q6">语雀</a>!<br>通过各种高科技功能同步到<a href="https://blog.slqwq.cn">Hajeekn 的博客</a><br>上篇我们介绍了 Cloudflare Argo Tunnel 的玩法<br>本篇讲述如何部署网站到 Cloudflare 加快速度</p><h1 id="配置-Cloudflare-Pages"><a href="#配置-Cloudflare-Pages" class="headerlink" title="配置 Cloudflare Pages"></a>配置 Cloudflare Pages</h1><p>本文章基于 Cloudflare Pages,如果没有请用 GitHub + Cloudflare CDN<br>首先打开你的 Cloudflare 账户 Pages 页面<br>选择新建项目<br>授权应用完成后选择储存库<br>为了减少部署时间,推荐使用编译仓库(也就是 Hexo 生成 HTML 的仓库)<br>选择后无脑下一步<br>之后 Cloudflare Pages 就会开始部署你的 Hexo 了</p><h1 id="自定义域名"><a href="#自定义域名" class="headerlink" title="自定义域名"></a>自定义域名</h1><p>打开 Cloudflare Partner 平台和你的 DNS 解析商<br>这里用辣椒和 DNS.LA 演示<br>新建一条解析(两边都是)<br>记录名写你博客的子域名,一般都是 blog<br>你的 DNS 解析商的 CNAME 海外写 blog.xxx.xx.cdn.cloudflare.net<br>默认和国内选择几个好用的自选 Cloudflare CDN 节点就行<br>辣椒的记录名也写 blog<br>记录类型选 CNAME<br>Cloudflare Pages 部署完成后会分给你一个<br>xxxx.pages.dev<br>把他复制填写进记录值然后保存就行<br>接着打开你的 Cloudflare Pages 页面<br>选择刚部署好的项目<br>进入自定义域<br>点击添加,自定义域就写 记录值.域名<br>然后等待 SSL 的启用就行了</p><h1 id="配置缓存"><a href="#配置缓存" class="headerlink" title="配置缓存"></a>配置缓存</h1><p>打开 Cloudflare 的缓存配置页面<br>点击配置<br><strong>Always Online 设置为 true</strong><br><strong>缓存级别 设置为标准</strong><br><strong>浏览器缓存 TTL 设置成 4 小时</strong><br>然后打开规则<br>创建页面规则<br>这样写就行<br>记得把博客记录名.域名替换成你自己的<br>比如我的是 blog.slqwq.cn<br>就写 blog.slqwq.cn<br><del>今天又水了一篇文章,真棒(๑•̀ㅂ•́)و✧</del></p>]]></content>
<summary type="html">deploy</summary>
<category term="cloudflare" scheme="https://blog.slqwq.cn/categories/cloudflare/"/>
<category term="cloudflare" scheme="https://blog.slqwq.cn/tags/cloudflare/"/>
</entry>
<entry>
<title>侧载 IPA 的另外方案 - SideStore</title>
<link href="https://blog.slqwq.cn/2023/posts/96d1f24e/index.html"/>
<id>https://blog.slqwq.cn/2023/posts/96d1f24e/index.html</id>
<published>2023-01-23T12:08:00.000Z</published>
<updated>2023-02-01T11:29:35.177Z</updated>
<content type="html"><![CDATA[<p>在 iOS 上侧载 IPA 文件,是一个令人头疼的问题</p><p>TrollStore 但是 iOS 16 不支持</p><p>我们可以使用 Sideloadly 但是续签需要电脑</p><p>我们也可以使用 AltStore 但是续签也需要电脑</p><p>我们还可以使用爱思助手但是续签同样需要电脑</p><p>有什么方法可以在手机上续签?</p><p>SideStore!</p><h1 id="下载-SideStore-IPA"><a href="#下载-SideStore-IPA" class="headerlink" title="下载 SideStore IPA"></a>下载 SideStore IPA</h1><p>进入 <a href="https://sidestore.io/">SideStore</a> 官网</p><p>开始下载 </p><p><img src="https://i0.hdslb.com/bfs/album/12a5bde0867a366acfb32709e59607d25fe716b1.png" alt="image-20230123121457969"></p><p>此处有两个选项</p><p>第一个选项会下载稳定版 SideStore</p><p>第二个选项会下载每夜(测试)版 SideStore</p><p>下载好后放在一个文件夹里面</p><h1 id="下载-SideStore-Downloader"><a href="#下载-SideStore-Downloader" class="headerlink" title="下载 SideStore Downloader"></a>下载 SideStore Downloader</h1><p>加入 <a href="https://discord.gg/CacsuuzsBq" title="JitStreamer">JitStreamer</a></p><p><img src="https://i0.hdslb.com/bfs/album/f9d960d1e57c288991e62f4ba35e6a43efd38f76.png" alt="image-20230123121916946"></p><p>在 downloads 频道中下载</p><p>下载完后打开</p><h1 id="预处理-SideStore-IPA"><a href="#预处理-SideStore-IPA" class="headerlink" title="预处理 SideStore IPA"></a>预处理 SideStore IPA</h1><p><img src="https://i0.hdslb.com/bfs/album/f44d40ef7004583103d03561b2be6dece9dcd8b2.png" alt="image-20230123122010052"></p><p>此处选择本地文件</p><p><img src="https://i0.hdslb.com/bfs/album/769cb23984dad79af1163fd5d1ab1f7cba3c1428.png" alt="image-20230123122027968"></p><p>这里直接粘贴 IPA 文件</p><p>然后一直默认就行</p><p>在配对设备的步骤中将你的 iPhone 插入电脑并信任</p><p>然后输入你的设备 IP 地址就行</p><p>稍等片刻,你就会拥有一个以 SideStore-设备名称命名的 IPA 文件</p><p><img src="https://i0.hdslb.com/bfs/album/2ea5274abbb914a3dee6a765a03061f922cf3405.png" alt="image-20230123122339744"></p><h1 id="下载-AltStore-并安装-SideStore"><a href="#下载-AltStore-并安装-SideStore" class="headerlink" title="下载 AltStore 并安装 SideStore"></a>下载 AltStore 并安装 SideStore</h1><p>SideStore 需要使用 AltStore 安装</p><p><a href="https://altstore.io/" title="AltStore">AltStore</a></p><p>链接贴在这里,直接下载安装即可</p><p>然后是 Windows 11 的解决办法</p><p>(来自 JitStreamer)</p><blockquote><p><strong>Windows 11 - AltServer Workaround</strong> </p><p><em>Step 1</em> - Download the vivetool from here !👉🏻 <a href="https://github.com/thebookisclosed/ViVe/releases">https://github.com/thebookisclosed/ViVe/releases</a> </p><p><em>Step 2</em> - Create a folder name vivetool without any spaces in the name, in C Drive. <em>Step 3</em> - Now Extract all the files from the zip to That vivetool folder you had created in Step 2. </p><p><em>Step 4</em> - Open Up the CMD (Run as Administrator). </p><p><em>Step 5</em> - Copy Paste & Run this Command in CMD !👉🏻 c:\vivetool\vivetool.exe /disable /id:26008830 </p><p><em>Step 6</em> - After Running the Command it will Show you a Message saying 👉🏻Successfully Set Feature Configuration ) which means the command is successfully implemented. </p><p><em>Step 7</em> - Now the only thing you need to do afterwards is that restart your PC. <em>Step 8</em> - After Restarting your PC, Launch the AltServer as Administrator, Guess what, !!!Boom!!!!🎆) u can see the AltServer Icon in your taskbar tray bar. Instructions courtesy of RyzenGaming#5928 - thank you! <img src="https://i0.hdslb.com/bfs/album/cfffefab2ad18aea4d36350ac972f5fd71739776.webp" alt=":Praise:"></p></blockquote><p>安装之后查看任务栏,按住 Shift 的同时点击 AltStore</p><p>选择 Sideload .ipa</p><blockquote><p>Windows 用户请安装非 Microsoft Store 的 iTunes 和非 Microsoft Store 的 iCloud</p></blockquote><h1 id="配置-WireGuard"><a href="#配置-WireGuard" class="headerlink" title="配置 WireGuard"></a>配置 WireGuard</h1><p>注册一个非国区 Apple ID</p><p>并获取 WireGuard</p><p>然后去 <a href="https://sidestore.io/">SideStore</a> 获取 WireGaurd 配置</p><p>下载完成之后导入 WireGuard 并启用即可</p><p>然后你的 SideStore 就可以正常使用了</p><p>如果有需要你可以自定义 Anisette 服务器</p><h1 id="搭建-Anisette-服务器-非必须"><a href="#搭建-Anisette-服务器-非必须" class="headerlink" title="搭建 Anisette 服务器(非必须)"></a>搭建 Anisette 服务器(非必须)</h1><p>详情请看文档</p><p><a href="https://wiki.sidestore.io/guides/custom-anisette.html">Custom Anisette Server | SideStore Docs</a></p>]]></content>
<summary type="html"><p>在 iOS 上侧载 IPA 文件,是一个令人头疼的问题</p>
<p>TrollStore 但是 iOS 16 不支持</p>
<p>我们可以使用 Sideloadly 但是续签需要电脑</p>
<p>我们也可以使用 AltStore 但是续签也需要电脑</p>
<p>我</summary>
<category term="ios" scheme="https://blog.slqwq.cn/categories/ios/"/>
<category term="ipa" scheme="https://blog.slqwq.cn/categories/ios/ipa/"/>
<category term="ios" scheme="https://blog.slqwq.cn/tags/ios/"/>
<category term="ipa" scheme="https://blog.slqwq.cn/tags/ipa/"/>
</entry>
<entry>
<title>小米路由器 AX9000 开发版固件获取 SSH / 安装 MIXBOX & ENTWARE</title>
<link href="https://blog.slqwq.cn/2023/posts/31c5538d/index.html"/>
<id>https://blog.slqwq.cn/2023/posts/31c5538d/index.html</id>
<published>2023-01-17T15:50:35.000Z</published>
<updated>2023-02-01T11:29:35.177Z</updated>
<content type="html"><![CDATA[<p>既然 <code>AX9000</code> 有了 <code>Docker</code></p><p>那我们打开 <code>SSH</code> 的方式就很多了</p><h1 id="Portainer-部署-BusyBox"><a href="#Portainer-部署-BusyBox" class="headerlink" title="Portainer 部署 BusyBox"></a>Portainer 部署 BusyBox</h1><p>这边我们通过 <code>BusyBox</code> 打开 <code>SSH</code> 权限</p><p>首先进入 <code>Portainer</code> 后台</p><p>创建一个容器</p><p>镜像使用 <code>busybox</code></p><p>在 <code>Advanced container settings</code> 中开启 <code>tty</code></p><p><img src="https://i0.hdslb.com/bfs/album/81edeabda4659295baa48acda92b2c56a24a6715.png" alt="image-20230117163148194"></p><p>然后挂载路由器的根目录</p><p><img src="https://i0.hdslb.com/bfs/album/35d1352d3f0a5f73e4949117c2282420c729d07a.png" alt="image-20230117163235982"></p><p>然后部署容器</p><h1 id="Attch-修改配置"><a href="#Attch-修改配置" class="headerlink" title="Attch 修改配置"></a>Attch 修改配置</h1><p>之后回到容器列表,选择刚创建的容器</p><p>使用 <code>attch</code> 进入容器</p><p><img src="https://i0.hdslb.com/bfs/album/737ea4d0b17873f32afc627b68640b758e699d93.png" alt="image-20230117163335547"></p><p><code>chroot</code>到主机根目录并且修改 <code>dropbear</code></p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">chroot</span> /mnt</span><br><span class="line">vi /etc/init.d/dropbear</span><br></pre></td></tr></table></figure><p>找到如下内容</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="title">start_service</span></span>()</span><br><span class="line">{</span><br><span class="line"> flg_ssh=`nvram get ssh_en`</span><br><span class="line"> channel=`/sbin/uci get /usr/share/xiaoqiang/xiaoqiang_version.version.CHANNEL`</span><br><span class="line"> <span class="keyword">if</span> [ <span class="string">"<span class="variable">$flg_ssh</span>"</span> != <span class="string">"1"</span> -o <span class="string">"<span class="variable">$channel</span>"</span> = <span class="string">"release"</span> ]; <span class="keyword">then</span></span><br><span class="line"> <span class="built_in">return</span> 0</span><br><span class="line"> <span class="keyword">fi</span></span><br><span class="line">···</span><br><span class="line">}</span><br></pre></td></tr></table></figure><p>将它注释掉</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="title">start_service</span></span>()</span><br><span class="line">{</span><br><span class="line"> <span class="comment">#flg_ssh=`nvram get ssh_en`</span></span><br><span class="line"> <span class="comment">#channel=`/sbin/uci get /usr/share/xiaoqiang/xiaoqiang_version.version.CHANNEL`</span></span><br><span class="line"> <span class="comment">#if [ "$flg_ssh" != "1" -o "$channel" = "release" ]; then</span></span><br><span class="line"> <span class="comment">#return 0</span></span><br><span class="line"> <span class="comment">#fi</span></span><br><span class="line">···</span><br><span class="line">}</span><br></pre></td></tr></table></figure><p>然后启动一下 <code>dropbear</code></p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">/etc/init.d/dropbear start</span><br></pre></td></tr></table></figure><p>修改 <code>root</code> 密码(或者添加 <code>RSA</code>的<code>authorized_keys</code>)</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">passwd root</span><br></pre></td></tr></table></figure><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">vi /etc/dropbear/authorized_keys</span><br></pre></td></tr></table></figure><h1 id="固化-SSH-有变砖风险-可以跳过"><a href="#固化-SSH-有变砖风险-可以跳过" class="headerlink" title="固化 SSH(有变砖风险,可以跳过)"></a>固化 SSH(有变砖风险,可以跳过)</h1><p>使用 <a href="https://github.com/paldier/ax3600_tool/releases" title="mitool releases">mitool</a></p><p>先查看 <code>bdata</code> 分区</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cat</span> /proc/mtd</span><br></pre></td></tr></table></figure><p>然后备份 <code>bdata</code></p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">nanddump -f /mnt/docker_disk/bdata.img /dev/mtd18</span><br></pre></td></tr></table></figure><p>固化 <code>SSH</code></p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">/tmp/mitool.sh unlock</span><br></pre></td></tr></table></figure><p><code>SSH</code> 权限就开启了</p><h1 id="安装-MIXBOX"><a href="#安装-MIXBOX" class="headerlink" title="安装 MIXBOX"></a>安装 MIXBOX</h1><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">export</span> MB_URL=https://gcore.jsdelivr.net/gh/monlor/mbfiles && sh -c <span class="string">"<span class="subst">$(curl -kfsSl ${MB_URL}/install.sh)</span>"</span> && <span class="built_in">source</span> /etc/profile &> /dev/null</span><br></pre></td></tr></table></figure><p>一串命令就行</p><p>之后在命令行使用<code>mixbox</code></p><p>就能使用了</p><p>手动更新</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sh -c <span class="string">"<span class="subst">$(curl -kfsSl https://gcore.jsdelivr.net/gh/monlor/mbfiles/update.sh)</span>"</span> && <span class="built_in">source</span> /etc/profile &> /dev/null</span><br></pre></td></tr></table></figure><p>手动卸载</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sh -c <span class="string">"<span class="subst">$(curl -kfsSl https://gcore.jsdelivr.net/gh/monlor/MIXBOX/apps/mixbox/scripts/uninstall.sh)</span>"</span> && <span class="built_in">source</span> /etc/profile &> /dev/null</span><br></pre></td></tr></table></figure><h1 id="安装-Entware"><a href="#安装-Entware" class="headerlink" title="安装 Entware"></a>安装 Entware</h1><p>首先备份</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">mv</span> /bin/opkg /bin/opkg.bak</span><br><span class="line"><span class="built_in">mv</span> /opt /data/opt_bak</span><br></pre></td></tr></table></figure><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">mkdir</span> /data/opt</span><br><span class="line"><span class="built_in">ln</span> -s /data/opt /</span><br><span class="line">curl http://bin.entware.net/aarch64-k3.10/installer/alternative.sh | sh</span><br><span class="line"><span class="built_in">echo</span> <span class="string">'export PATH=$PATH:/opt/bin:/opt/sbin'</span> >> /etc/profile</span><br><span class="line"><span class="built_in">source</span> /etc/profile</span><br><span class="line">/opt/etc/init.d/rc.unslung start</span><br></pre></td></tr></table></figure><p>如果你想要安装在外置存储(USB)</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">mkdir</span> /mnt/docker_disk/entware</span><br><span class="line"><span class="built_in">ln</span> -s /mnt/docker_disk/entware /</span><br><span class="line">curl http://bin.entware.net/aarch64-k3.10/installer/alternative.sh | sh</span><br><span class="line"><span class="built_in">echo</span> <span class="string">'export PATH=$PATH:/opt/bin:/opt/sbin'</span> >> /etc/profile</span><br><span class="line"><span class="built_in">source</span> /etc/profile</span><br><span class="line">/opt/etc/init.d/rc.unslung start</span><br></pre></td></tr></table></figure><p>如果已经安装完了要更改路径</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">mv</span> /data/opt 新路径</span><br><span class="line"><span class="built_in">rm</span> -f /data/opt</span><br><span class="line"><span class="built_in">ln</span> -s 新路径 /opt</span><br></pre></td></tr></table></figure><h1 id="参考内容"><a href="#参考内容" class="headerlink" title="参考内容"></a>参考内容</h1><p><a href="https://blog.nanpuyue.com/2022/056.html">小米路由器 AX9000 开发版固件直接获取 SSH - 南浦月 (nanpuyue.com)</a></p><hr><p><a href="https://www.right.com.cn/FORUM/thread-7673021-1-1.html">AX9000官方固件一些ssh配置分享(静态路由,巨型帧,彻底关闭无线,Godaddy DDNS等)-小米无线路由器以及小米无线相关的设备-恩山无线论坛 (right.com.cn)</a></p><hr><p><a href="https://github.com/monlor/MIXBOX-ARCHIVE">monlor/MIXBOX-ARCHIVE: 一款基于Shell的小米路由器工具箱,原为Monlor-Tools,A tool box for XiaoMi Router base on Shell. (github.com)</a></p>]]></content>
<summary type="html"><p>既然 <code>AX9000</code> 有了 <code>Docker</code></p>
<p>那我们打开 <code>SSH</code> 的方式就很多了</p>
<h1 id="Portainer-部署-BusyBox"><a href="#Portainer</summary>
<category term="ax9000" scheme="https://blog.slqwq.cn/categories/ax9000/"/>
<category term="docker" scheme="https://blog.slqwq.cn/categories/ax9000/docker/"/>
<category term="docker" scheme="https://blog.slqwq.cn/tags/docker/"/>
<category term="ax9000" scheme="https://blog.slqwq.cn/tags/ax9000/"/>
</entry>
<entry>
<title>AX9000 Docker - Cloudreve 搭建并打洞</title>
<link href="https://blog.slqwq.cn/2022/posts/4e18cfcd/index.html"/>
<id>https://blog.slqwq.cn/2022/posts/4e18cfcd/index.html</id>
<published>2022-12-10T12:31:55.000Z</published>
<updated>2023-02-01T11:29:35.177Z</updated>
<content type="html"><![CDATA[<p>接上次,我们在 <code>AX9000</code> 中安装了 <code>Docker</code>,我们可以用它搭建一个网盘,并且打洞映射到外网(<code>Cloudflare Argo Tunnel</code>)</p><blockquote><p>打洞使用 <code>Cloudflare Argo Tunnel</code> / 和 <code>Cloudflare 零信任</code>使用同一个程序</p></blockquote><h1 id="Cloudreve-的配置"><a href="#Cloudreve-的配置" class="headerlink" title="Cloudreve 的配置"></a>Cloudreve 的配置</h1><p>进入 <a href="https://docs.cloudreve.org/getting-started/install">快速开始 - Cloudreve</a></p><p>找到 <code>Docker Compose</code> 安装方式</p><blockquote><p>为什么不使用传统安装方式?</p><p>AX9000 虽然开启了 Docker,但是不提供 SSH</p><p>所以我们无法通过命令行的方式安装 <code>Cloudreve</code></p></blockquote><p>复制 <code>Compose</code> 文件</p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">version:</span> <span class="string">"3.8"</span></span><br><span class="line"><span class="attr">services:</span></span><br><span class="line"> <span class="attr">cloudreve:</span></span><br><span class="line"> <span class="attr">container_name:</span> <span class="string">cloudreve</span></span><br><span class="line"> <span class="attr">image:</span> <span class="string">cloudreve/cloudreve:latest</span></span><br><span class="line"> <span class="attr">restart:</span> <span class="string">unless-stopped</span></span><br><span class="line"> <span class="attr">ports:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">"5212:5212"</span></span><br><span class="line"> <span class="attr">volumes:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">temp_data:/data</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">./cloudreve/uploads:/cloudreve/uploads</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">./cloudreve/conf.ini:/cloudreve/conf.ini</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">./cloudreve/cloudreve.db:/cloudreve/cloudreve.db</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">./cloudreve/avatar:/cloudreve/avatar</span></span><br><span class="line"> <span class="attr">depends_on:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">aria2</span></span><br><span class="line"> <span class="attr">aria2:</span></span><br><span class="line"> <span class="attr">container_name:</span> <span class="string">aria2</span></span><br><span class="line"> <span class="attr">image:</span> <span class="string">p3terx/aria2-pro</span></span><br><span class="line"> <span class="attr">restart:</span> <span class="string">unless-stopped</span></span><br><span class="line"> <span class="attr">environment:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">RPC_SECRET=your_aria_rpc_token</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">RPC_PORT=6800</span></span><br><span class="line"> <span class="attr">volumes:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">./aria2/config:/config</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">temp_data:/data</span></span><br><span class="line"><span class="attr">volumes:</span></span><br><span class="line"> <span class="attr">temp_data:</span></span><br><span class="line"> <span class="attr">driver:</span> <span class="string">local</span></span><br><span class="line"> <span class="attr">driver_opts:</span></span><br><span class="line"> <span class="attr">type:</span> <span class="string">none</span></span><br><span class="line"> <span class="attr">device:</span> <span class="string">$PWD/data</span></span><br><span class="line"> <span class="attr">o:</span> <span class="string">bind</span></span><br></pre></td></tr></table></figure><p>在桌面新建一个 <code>yml</code> 文件并用 <code>VSCode</code> 打开</p><p><img src="https://i0.hdslb.com/bfs/album/75bffbeadb3fc7c0ef228d89f630750b9e106191.png" alt="image-20221210124732395"></p><p>看到 <code>Cloudreve</code> 的文件映射,我们要将 <code>./cloudreve</code> 前面全部加上 <code>/mnt/docker_disk/mi_docker/</code></p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">version:</span> <span class="string">"3.8"</span></span><br><span class="line"><span class="attr">services:</span></span><br><span class="line"> <span class="attr">cloudreve:</span></span><br><span class="line"> <span class="attr">container_name:</span> <span class="string">cloudreve</span></span><br><span class="line"> <span class="attr">image:</span> <span class="string">cloudreve/cloudreve:latest</span></span><br><span class="line"> <span class="attr">restart:</span> <span class="string">unless-stopped</span></span><br><span class="line"> <span class="attr">ports:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">"5212:5212"</span></span><br><span class="line"> <span class="attr">volumes:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">temp_data:/data</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">/mnt/docker_disk/mi_docker/cloudreve/uploads:/cloudreve/uploads</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">/mnt/docker_disk/mi_docker/cloudreve/conf.ini:/cloudreve/conf.ini</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">/mnt/docker_disk/mi_docker/cloudreve/cloudreve.db:/cloudreve/cloudreve.db</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">/mnt/docker_disk/mi_docker/cloudreve/avatar:/cloudreve/avatar</span></span><br><span class="line"> <span class="attr">depends_on:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">aria2</span></span><br><span class="line"> <span class="attr">aria2:</span></span><br><span class="line"> <span class="attr">container_name:</span> <span class="string">aria2</span></span><br><span class="line"> <span class="attr">image:</span> <span class="string">p3terx/aria2-pro</span></span><br><span class="line"> <span class="attr">restart:</span> <span class="string">unless-stopped</span></span><br><span class="line"> <span class="attr">environment:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">RPC_SECRET=your_aria_rpc_token</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">RPC_PORT=6800</span></span><br><span class="line"> <span class="attr">volumes:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">/mnt/docker_disk/mi_docker/aria2/config:/config</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">temp_data:/data</span></span><br><span class="line"><span class="attr">volumes:</span></span><br><span class="line"> <span class="attr">temp_data:</span></span><br><span class="line"> <span class="attr">driver:</span> <span class="string">local</span></span><br><span class="line"> <span class="attr">driver_opts:</span></span><br><span class="line"> <span class="attr">type:</span> <span class="string">none</span></span><br><span class="line"> <span class="attr">device:</span> <span class="string">$PWD/data</span></span><br><span class="line"> <span class="attr">o:</span> <span class="string">bind</span></span><br></pre></td></tr></table></figure><p>然后在 <code>Windows 资源管理器</code> 中进入路由器的 SMB</p><blockquote><p>请对你的设备在米家中开启全盘访问</p></blockquote><p><img src="https://i0.hdslb.com/bfs/album/1f59f63d25ca1607ed365680425e47b0a61502c2.png" alt="image-20221210125139723"></p><p>新建一个 <code>cloudreve</code> 文件夹</p><p>在其中新建 <code>aria2 | avatar | uploads</code> 三个文件夹</p><p>并创建 <code>cloudreve.db | conf.ini</code> 两个空文件</p><p>然后返回到 <code>mi_docker</code> 文件夹</p><p>新建 <code>aria2</code> 文件夹</p><p>并在其中新建 <code>config</code> 文件夹</p><p>这样就完成了文件映射~</p><h1 id="部署-Cloudreve"><a href="#部署-Cloudreve" class="headerlink" title="部署 Cloudreve"></a>部署 Cloudreve</h1><p>进入 <code>Portainer</code> 中的 <code>Stacks</code></p><p><img src="https://i0.hdslb.com/bfs/album/7df78fc2229f73517fa8cba084050025fce60df5.png" alt="image-20221210125505668"></p><p>新建一个 Stacks</p><p><img src="https://i0.hdslb.com/bfs/album/47650ce1a733e1046fa082adb4d0654ee0b72d7f.png" alt="image-20221210125533188"></p><p>将本地修改好的 <code>yml</code> 直接粘贴到输入框中</p><p>然后点击 Deploy the stack</p><p><img src="https://i0.hdslb.com/bfs/album/7d083654907d5abea575065a3cef282ff044b508.png" alt="image-20221210125711406"></p><p>稍等片刻,你就能在 Stacks 中看见你部署的容器了</p><p><img src="https://i0.hdslb.com/bfs/album/70539f00581eab41afae02016ecf925bb8f86231.png" alt="image-20221210125804271" /></p><p>容器后面的 <code>IP Address</code> 就是你的容器内网地址</p><p><img src="https://i0.hdslb.com/bfs/album/3ef831f95d609dda765976e0d2d28a1c1cfe5f9e.png" alt="image-20221210125834528"></p><p><code>aria2</code> 没有映射端口,我们只要复制 <code>cloudreve</code> 的地址加上 <code>5212</code> 端口就行</p><p>接下来我们去 <code>cloudreve</code> 的日志中获取管理员密码</p><p><img src="https://i0.hdslb.com/bfs/album/63891f9eb60dd72a4494f8b6eb49b93f946912e8.png" alt="image-20221210130214629"></p><p><img src="https://i0.hdslb.com/bfs/album/76453eb4028d5b8660ff1f7e3b672bd9c972d8bf.png" alt="image-20221210130038220"></p><p>(这里是我配置好的网盘)</p><h1 id="打洞映射"><a href="#打洞映射" class="headerlink" title="打洞映射"></a>打洞映射</h1><blockquote><p>此处我们需要创建一个 <code>Ubuntu</code> 容器用来映射</p></blockquote><p>进入 <code>App Templates</code> 界面</p><p><img src="https://i0.hdslb.com/bfs/album/354c2055ceba3b09adc0d89087989636c9b72dd4.png" alt="image-20221210130407269"></p><p>找到 <code>Ubuntu</code> 并部署</p><p>部署完成之后进入容器详情</p><p>找到 <code>Connected networks</code></p><p><img src="https://i0.hdslb.com/bfs/album/60053a29a01a1757da849e00994c9eb36a1e112b.png" alt="image-20221210130500276"></p><p>在这里加入 <code>Cloudreve Stack</code> 的网络</p><p>然后找到 <code>Console</code></p><p><img src="https://i0.hdslb.com/bfs/album/7d1678a72ab02896b77b736b015cca2b2c03e108.png" alt="image-20221210130540644"></p><p>连接到容器</p><h2 id="配置-Cloudflared"><a href="#配置-Cloudflared" class="headerlink" title="配置 Cloudflared"></a>配置 Cloudflared</h2><blockquote><p>此处假设你拥有 Cloudflare 账号,并添加好了域名</p></blockquote><p>首先换源</p><p>因为这个系统太迷你了</p><p>先升级 <code>ca-certificates</code></p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">apt-get update</span></span><br><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">apt-get install ca-certificates</span></span><br></pre></td></tr></table></figure><p>然后安装必要工具</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">apt-get install vim</span></span><br><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">apt-get install systemctl</span></span><br></pre></td></tr></table></figure><h3 id="网络差用户"><a href="#网络差用户" class="headerlink" title="网络差用户"></a>网络差用户</h3><p>对于网络环境差的用户,请先用 <code>sed</code> 替换源,在进行操作</p><p>现在我们下载 <code>Cloudflared</code></p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">wget https://github.com/cloudflare/cloudflared/releases/download/2022.11.1/cloudflared-linux-arm64.deb cloudflared.deb</span></span><br></pre></td></tr></table></figure><p>网络不好可以上传到你刚才搭建的 <code>Cloudreve</code> 中,然后 <code>wget</code> 下载下来</p><p>安装 <code>Cloudflared</code></p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">dpkg -i ./cloudflared.deb</span></span><br></pre></td></tr></table></figure><p>然后我们需要设置隧道</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">cloudflared tunnel login</span></span><br></pre></td></tr></table></figure><p>这时候终端里面会出现一串 URL,复制在浏览器里访问并授权就好了</p><p>创建一个隧道</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">cloudflared tunnel create <隧道名></span></span><br></pre></td></tr></table></figure><p>记录下隧道 ID</p><p>创建路由</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">cloudflared tunnel route dns <隧道名> <主机名></span></span><br></pre></td></tr></table></figure><p>然后我们需要创建配置文件</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash"><span class="built_in">touch</span> ~/.cloudflared/config.yml</span></span><br></pre></td></tr></table></figure><p>内容大概如下</p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">url:</span> <span class="string">http://localhost:8080</span></span><br><span class="line"><span class="attr">tunnel:</span> <span class="string">xxxxxxx-5b0e-xxxx-8034-xxxxxxx</span></span><br><span class="line"><span class="attr">credentials-file:</span> <span class="string">~/.cloudflared/xxxxxxx-5b0e-xxxx-8034-xxxxxxx.json</span></span><br></pre></td></tr></table></figure><p><code>url</code> 替换成你要映射的 <code>cloudreve</code> 地址</p><p><code>tunnel</code> 和 <code>credentials-file</code> 中的 <code>xxxxxxx-5b0e-xxxx-8034-xxxxxxx</code> 替换成你的隧道 ID</p><h3 id="作为服务运行"><a href="#作为服务运行" class="headerlink" title="作为服务运行"></a>作为服务运行</h3><p>不知道为什么, <code>screen</code> 在容器上面是用不了的,所以我们只能用 <code>systemctl</code> 作为服务运行</p><p>两步走起</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">cloudflared service install</span></span><br><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">systemctl start cloudflared</span></span><br></pre></td></tr></table></figure><p>等 <code>Cloudflared</code> 连接到了 HKG 节点之后,你的 <code>Cloudreve</code> 就被映射出去辣~</p>]]></content>
<summary type="html">cloudreve</summary>
<category term="docker" scheme="https://blog.slqwq.cn/categories/docker/"/>
<category term="docker" scheme="https://blog.slqwq.cn/tags/docker/"/>
</entry>
<entry>
<title>Electron + Vue + Mdui</title>
<link href="https://blog.slqwq.cn/2022/posts/6bd0d2ac/index.html"/>
<id>https://blog.slqwq.cn/2022/posts/6bd0d2ac/index.html</id>
<published>2022-07-22T16:23:03.000Z</published>
<updated>2023-02-01T11:29:35.177Z</updated>
<content type="html"><![CDATA[<blockquote><p>开始前注意,这是将 Electron 集成到 Vue 项目中的演示,如果你没有基础,建议使用<a href="https://github.com/SimulatedGREG/electron-vue">样板代码</a></p></blockquote><h1 id="Part-0-1-什么是-Electron"><a href="#Part-0-1-什么是-Electron" class="headerlink" title="Part 0.1: 什么是 Electron"></a>Part 0.1: 什么是 Electron</h1><p><strong>Electron 可以让你使用纯 JavaScript 调用丰富的原生 APIs 来创造桌面应用。</strong>你可以把它看作一个专注于桌面应用的 Node.js 的变体,而不是 Web 服务器。</p><p>这不意味着 Electron 是绑定了 GUI 库的 JavaScript。相反,Electron 使用 web 页面作为它的GUI,<strong>所以你能把它看作成一个被 JavaScript 控制的,精简版的 Chromium 浏览器。</strong></p><h1 id="Part-0-5-先决条件"><a href="#Part-0-5-先决条件" class="headerlink" title="Part 0.5: 先决条件"></a>Part 0.5: 先决条件</h1><ul><li>[x] 良好的网络</li></ul><h1 id="Part-1-安装-Node-js"><a href="#Part-1-安装-Node-js" class="headerlink" title="Part 1: 安装 Node.js"></a>Part 1: 安装 Node.js</h1><p><strong>Electron 是基于 Node.js 构建的</strong> / 并且使用 Node.js 还能完成平时 Web 程序所做不到的事情: <code>与系统打交道</code></p><p><a href="https://nodejs.org/">Node.js</a></p><p>进入上述地址下载并安装 Node.js</p><h1 id="Part-2-安装-Vue-cli"><a href="#Part-2-安装-Vue-cli" class="headerlink" title="Part 2: 安装 Vue-cli"></a>Part 2: 安装 Vue-cli</h1><p>由于我更喜欢 Vue,所以我选择用 Vue 创建项目</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ npm install @vue/cli --global</span><br></pre></td></tr></table></figure><p>安装 <code>vue-cli</code></p><h1 id="Part-3-创建项目"><a href="#Part-3-创建项目" class="headerlink" title="Part 3: 创建项目"></a>Part 3: 创建项目</h1><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ vue create electron-vue-mdui</span><br></pre></td></tr></table></figure><p>创建自己的项目</p><p><img src="https://i0.hdslb.com/bfs/album/c059674e13fba60852652ed9c48c1c52fe95cc63.png" alt="image-20220722164718559"></p><p>这里选择最后一项(Manually select features)</p><p><img src="https://i0.hdslb.com/bfs/album/d6078ce2c01f0c180ca9d7a1c32f47c271ea0071.png" alt="image-20220722164803927"></p><p>这里依照自己的需要,我选择了 Babel(语法编译器) | Router(Vue 路由) | CSS Pre-processors(CSS预处理器) Linter / Formatter(代码风格、格式校验)</p><p><img src="https://i0.hdslb.com/bfs/album/678861d38a4bf074dae2925aef1364f51342badc.png" alt="image-20220722164939866"></p><p>这一步选择 3.x(或更高版本)</p><p><img src="https://i0.hdslb.com/bfs/album/6cddc5515bcc6b84457abb099d24a03db8032e3c.png" alt="image-20220722165006031"></p><p>History 模式选择 <code>Y</code> </p><p><img src="https://i0.hdslb.com/bfs/album/8324dcb626a202b1e3374280197ca9d378be4b10.png" alt="image-20220722165039090"></p><p>CSS 预处理器我更喜欢 Stlyus, 这里依照自己的喜好选择</p><p><img src="https://i0.hdslb.com/bfs/album/5358d1dc61a13dd9734947d2ba923c9cf1ef1fe4.png" alt="image-20220722165120215"></p><p>这里墙裂建议使用 ESLint</p><p>我选择的是 ESLint + Prettier</p><p><img src="https://i0.hdslb.com/bfs/album/98c501aa53b8a0856b7e6db9c71ae71f01c98c27.png" alt="image-20220722165200782"></p><p>在这一步建议两个都选择</p><p><img src="https://i0.hdslb.com/bfs/album/994a084bcb79e8409741914c30237611b5ad45df.png" alt="image-20220722165233900"></p><p>这一步我们选择单独放置在文件夹下</p><p><img src="https://i0.hdslb.com/bfs/album/971f5038fc1d36d7f2d4e7439ca40f6bd8082e26.png" alt="image-20220722165254250"></p><p>然后这里是最后一步,让你选择下一次是否要用同样的配置, 我选择的是 <code>N</code></p><p>等待安装完成就创建好了一个 <code>Vue 项目</code></p><h1 id="Part4-集成-Electron-至-Vue-项目中"><a href="#Part4-集成-Electron-至-Vue-项目中" class="headerlink" title="Part4: 集成 Electron 至 Vue 项目中"></a>Part4: 集成 Electron 至 Vue 项目中</h1><p>进入项目文件夹,打开终端</p><p>安装 electron 插件</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ vue add vue-cli-plugin-electron-builder</span><br></pre></td></tr></table></figure><p>版本选择 <code>^13.0.0</code> 就可</p><p>等待它安装完成,在安装的过程中它会重构项目架构</p><p>等到安装完成你就拥有了一个 Electron + Vue 的 App</p><p>运行 Electron 试试看吧!</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ yarn electron:serve</span><br></pre></td></tr></table></figure><p>如果弹出一个程序就成功了</p><h1 id="Part-5-用-MDUI-写前端"><a href="#Part-5-用-MDUI-写前端" class="headerlink" title="Part 5: 用 MDUI 写前端"></a>Part 5: 用 MDUI 写前端</h1><p><a href="https://www.mdui.org/">MDUI - Material Design 样式的前端框架</a></p><blockquote><p><strong>MDUI 漂亮、轻量且好用,它能让你更轻松地开发 Material Design 网页应用</strong></p></blockquote><p>首先安装它</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ yarn add mdui</span><br></pre></td></tr></table></figure><p>然后我们需要引用它</p><p>编辑入口文件</p><p>加入一些代码</p><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> mdui <span class="keyword">from</span> <span class="string">'mdui'</span>;</span><br><span class="line"><span class="keyword">import</span> <span class="string">'../vendor/mdui/css/mdui.css'</span>; <span class="comment">// 注意修改 css 文件的路径</span></span><br></pre></td></tr></table></figure><blockquote><p><strong>在其他需要使用 MDUI 提供的 api 的 JS 文件头部导入 mdui 的 JS 文件</strong> (来自 MDUI 作者)</p></blockquote><p>然后 MDUI 就已经添加进你的项目了,接下来只需要简单写一下,就可以让你的项目使用上 MDUI</p><p>比如添加一个按钮</p><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag"><<span class="name">button</span> @<span class="attr">onclick</span>=<span class="string">"javascript;;"</span> <span class="attr">class</span>=<span class="string">"mdui-btn mdui-color-teal mdui-ripple"</span>></span>button<span class="tag"></<span class="name">button</span>></span></span><br></pre></td></tr></table></figure><p>或者一个导航栏</p><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag"><<span class="name">div</span> <span class="attr">class</span>=<span class="string">"mdui-toolbar mdui-color-teal"</span>></span></span><br><span class="line"> <span class="tag"><<span class="name">a</span> <span class="attr">href</span>=<span class="string">"javascript:;"</span> <span class="attr">class</span>=<span class="string">"mdui-btn mdui-btn-icon"</span>></span></span><br><span class="line"> <span class="tag"><<span class="name">i</span> <span class="attr">class</span>=<span class="string">"mdui-icon material-icons"</span>></span>menu<span class="tag"></<span class="name">i</span>></span></span><br><span class="line"> <span class="tag"></<span class="name">a</span>></span></span><br><span class="line"> <span class="tag"><<span class="name">span</span> <span class="attr">class</span>=<span class="string">"mdui-typo-title"</span>></span>Test App<span class="tag"></<span class="name">span</span>></span></span><br><span class="line"> <span class="tag"><<span class="name">div</span> <span class="attr">class</span>=<span class="string">"mdui-toolbar-spacer"</span>></span><span class="tag"></<span class="name">div</span>></span></span><br><span class="line"> <span class="tag"><<span class="name">a</span> <span class="attr">href</span>=<span class="string">"javascript:;"</span> <span class="attr">class</span>=<span class="string">"mdui-btn mdui-btn-icon"</span>></span></span><br><span class="line"> <span class="tag"><<span class="name">i</span> <span class="attr">class</span>=<span class="string">"mdui-icon material-icons"</span>></span>search<span class="tag"></<span class="name">i</span>></span></span><br><span class="line"> <span class="tag"></<span class="name">a</span>></span></span><br><span class="line"> <span class="tag"><<span class="name">a</span> <span class="attr">href</span>=<span class="string">"window.onload();"</span> <span class="attr">class</span>=<span class="string">"mdui-btn mdui-btn-icon"</span>></span></span><br><span class="line"> <span class="tag"><<span class="name">i</span> <span class="attr">class</span>=<span class="string">"mdui-icon material-icons"</span>></span>refresh<span class="tag"></<span class="name">i</span>></span></span><br><span class="line"> <span class="tag"></<span class="name">a</span>></span></span><br><span class="line"> <span class="tag"><<span class="name">a</span> <span class="attr">href</span>=<span class="string">"javascript:;"</span> <span class="attr">class</span>=<span class="string">"mdui-btn mdui-btn-icon"</span>></span></span><br><span class="line"> <span class="tag"><<span class="name">i</span> <span class="attr">class</span>=<span class="string">"mdui-icon material-icons"</span>></span>more_vert<span class="tag"></<span class="name">i</span>></span></span><br><span class="line"> <span class="tag"></<span class="name">a</span>></span></span><br><span class="line"><span class="tag"></<span class="name">div</span>></span></span><br></pre></td></tr></table></figure><p>(代码从 VSCODE 编辑)</p><p><img src="https://i0.hdslb.com/bfs/album/f144fbad397951d3d16febc560ff4fe3e013e3ed.png" alt="image-20220722171245373"></p><h1 id="Part-6-打包"><a href="#Part-6-打包" class="headerlink" title="Part 6: 打包"></a>Part 6: 打包</h1><p>在终端内输入打包命令进行打包</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ yarn electron:build</span><br></pre></td></tr></table></figure><blockquote><p>请注意,在打包过程中需要下载一些文件,但由于天朝网络特性,可能会 timeout,请自行替换源或使用科学上网</p></blockquote>]]></content>
<summary type="html"><blockquote>
<p>开始前注意,这是将 Electron 集成到 Vue 项目中的演示,如果你没有基础,建议使用<a href="https://github.com/SimulatedGREG/electron-vue">样板代码</a></p>
</blockqu</summary>
<category term="electron" scheme="https://blog.slqwq.cn/categories/electron/"/>
<category term="electron" scheme="https://blog.slqwq.cn/tags/electron/"/>
</entry>
<entry>
<title>AX9000 Docker 部署指南</title>
<link href="https://blog.slqwq.cn/2022/posts/e443d51d/index.html"/>
<id>https://blog.slqwq.cn/2022/posts/e443d51d/index.html</id>
<published>2022-07-22T11:26:53.000Z</published>
<updated>2023-02-01T11:29:35.177Z</updated>
<content type="html"><![CDATA[<p>废话不多说,先看配置</p><p>作为小米家主打电竞的路由器,AX9000 的配置还是非常强劲的</p><h2 id="硬件参数"><a href="#硬件参数" class="headerlink" title="硬件参数"></a>硬件参数</h2><p><strong>处理器</strong> <strong>Qualcomm IPQ8072A 4核 A53 2.2GHz CPU</strong></p><p><strong>⽹络加速引擎</strong> <strong>双核 1.7GHz NPU</strong></p><p><strong>内存</strong> <strong>1GB</strong></p><p><strong>2.4G Wi-Fi</strong> <strong>4×4(最高支持 IEEE 802.11ax协议,理论最高速率可达 1148Mbps)</strong></p><p><strong>5.2G Wi-Fi</strong> <strong>4×4(最高支持 IEEE 802.11ax协议,理论最高速率可达 4804Mbps)</strong></p><p><strong>5.8G Wi-Fi</strong> <strong>4×4(最高支持 IEEE 802.11ax协议,理论最高速率可达 2402Mbps)</strong></p><p><strong>产品天线</strong> <strong>外置高增益天线 + 内置 AIoT天线</strong></p><p><strong>产品散热</strong> <strong>主动散热</strong></p><p><strong>整机接口</strong> <strong>1个10/100/1000/2500M 自适应 WAN/LAN口(Auto MDI/MDIX)</strong><br><strong>1个10/100/1000M 自适应 WAN/LAN口(Auto MDI/MDIX)</strong><br><strong>3个10/100/1000M 自适应 LAN口(Auto MDI/MDIX)</strong></p><p><strong>LED指示灯</strong> <strong>8个(SYSTEM指示灯×1,INTERNET指示灯×1,网口灯×5,氛围灯×1)</strong></p><p><strong>系统重置键 </strong> <strong>1个</strong></p><p><strong>USB3.0接口</strong> <strong>1个</strong></p><p><strong>Mesh组网按键</strong> <strong>1个</strong></p><p><strong>电源按键</strong> <strong>1个</strong></p><p><strong>电源输入接口</strong> <strong>1个</strong></p><p><strong>协议标准</strong> <strong>IEEE 802.11a/b/g/n/ac/ax,IEEE 802.3/3u/3ab</strong></p><p><strong>认证标准</strong> <strong>GB/T9254-2008;GB4943.1-2011</strong></p><p><strong>保修信息</strong> <strong>整机保修1年</strong></p><p>可以看到,AX9000 拥有频率为 2.2GHz(arm64) 的4核高通 CPU</p><p>还是非常适合搞事情的</p><p>并且小米官方也在 <code>2021年11月12日</code> 发布了第一个开发版 ROM</p><p><img src="https://i0.hdslb.com/bfs/album/e895eded559f24c6787630eac2d396855d6ca0f5.png" alt="image-20220722113425748"></p><p>而且还有虚拟内存功能</p><h1 id="硬盘准备"><a href="#硬盘准备" class="headerlink" title="硬盘准备"></a>硬盘准备</h1><blockquote><p>启用 Docker 需要至少 64GB 的 硬盘/ U 盘</p><p>对于体验上来说,使用硬盘明显比 U 盘好得多</p></blockquote><p>我准备的是夏科的移动硬盘(支持 USB3.1)</p><p>首先下载 DiskGenius</p><p>在右侧位置选择你的硬盘</p><p><img src="https://i0.hdslb.com/bfs/album/b755973dc1aa9824ff69260647cf3fa677f4ee0c.png" alt="image-20220722113615561"></p><p>然后选择格式化</p><p><img src="https://i0.hdslb.com/bfs/album/536c79003fb5f97b846c88a3124dbf67eaa0c1d5.png" alt="image-20220722113651477"></p><p>格式化为 EXT4</p><blockquote><p>这里需要注意,如果你的硬盘还要用来储存文件,你需要把第一个分区(序号为1)格式化为 EXT4,其他分区可以保持不动</p></blockquote><p>接着保存更改,拔出硬盘</p><h1 id="路由器配置"><a href="#路由器配置" class="headerlink" title="路由器配置"></a>路由器配置</h1><p>首先下载小米官方提供的开发版 <code>ROM</code></p><p>进入常用设置 -> 系统状态中进行升级就行</p><p>接着插入硬盘 AX9000 的 USB 3.1 口</p><p><img src="https://i0.hdslb.com/bfs/album/3b7649339b18e242a2958109dc04ad9d3cb48036.jpg" alt="0"></p><p>位置在指示灯面左侧(也就是有 <code>Mesh</code> 组网按钮的那一面)</p><p>插入之后重启路由器(因为 AX9000 的 USB3.1 口似乎是不支持热插拔的)</p><blockquote><p>PS: 也有可能是我的问题</p></blockquote><p>具体操作就是登陆后台选择路由器,点击重启</p><p><img src="https://i0.hdslb.com/bfs/album/643f7072ba8f98ace42ec04855c36e4ac6ea920b.png" alt="image-20220722114257383"></p><p>当然你也可以直接按 Power 按钮</p><p>接着进入储存状态</p><p><img src="https://i0.hdslb.com/bfs/album/5fb6fb340f35a56e4490bdcb7f823d15f758cbb5.png" alt="image-20220722114422388"></p><p>找到虚拟内存</p><p><img src="https://i0.hdslb.com/bfs/album/f3192d028aff9364222dc35cb8ad7e6e1c92c115.png" alt="image-20220722114442113"></p><p>创建虚拟内存,这里最好选 4069MB (4G)</p><p>以给 Docker 留出足够的内存</p><p>等待创建完成</p><p>进入高级设置 -> Docker</p><p>然后你会进入这个页面</p><p><img src="https://i0.hdslb.com/bfs/album/9297d3d29b38e74851fb4b336e774fb66889a9a0.png" alt="image-20220722114741531"></p><p>点击安装 Docker</p><p>等待安装完成</p><p><img src="https://i0.hdslb.com/bfs/album/45a2af9c02ecdfcfe9110fb472466837286922ed.png" alt="image-20220722114811255"></p><p>然后运行 Docker 并安装第三方管理(Portainer)</p><p>安装第三方管理时有 ipv6 会比较快,如果没有 ipv6 就得忍受天朝网络,时不时还能安装失败几十次</p><p>安装完成进入 Portainer</p><p>完成他的配置</p><p>然后你就能进入这个页面了</p><p><img src="https://i0.hdslb.com/bfs/album/76bb7ff881764d391c3be868d2a7f5d0cec9e885.png" alt="image-20220722115102813"></p><h1 id="Portainer-配置"><a href="#Portainer-配置" class="headerlink" title="Portainer 配置"></a>Portainer 配置</h1><p>首先是新建自己的镜像源</p><p>进入 <strong>Registries</strong> 选项卡新建自己的源</p><p><img src="https://i0.hdslb.com/bfs/album/5f21db591363ef4110cda85575c9630006e28dbd.png" alt="image-20220722115224991"></p><p>然后去 App templates 找模板安装</p><p><img src="https://i0.hdslb.com/bfs/album/4cc941aa58bb85dd3029948affa3c33cc0fafe22.png" alt="image-20220722115306421"></p><p>没错你没看错,AX9000 的 Docker 是支持 Ubuntu 的!</p><h1 id="演示-安装-Ubuntu"><a href="#演示-安装-Ubuntu" class="headerlink" title="演示:安装 Ubuntu"></a>演示:安装 Ubuntu</h1><p>选择 Ubuntu</p><p>名字随意</p><p><img src="https://i0.hdslb.com/bfs/album/d7b4354cd9c261cb818cba278b6b737702c06657.png" alt="image-20220722115410481"></p><p><strong>然后重点来了</strong></p><p>点击 <code>Show adbanced options</code></p><p>添加映射</p><p><img src="https://i0.hdslb.com/bfs/album/f968387a37ef145467b8a73e1eddaef4e6875b32.png" alt="image-20220722115452836"></p><p>然后部署即可</p><h1 id="演示-Ubuntu-配置"><a href="#演示-Ubuntu-配置" class="headerlink" title="演示:Ubuntu 配置"></a>演示:Ubuntu 配置</h1><p>部署完后进入容器,选择 Console 进入控制台</p><p><img src="https://i0.hdslb.com/bfs/album/4a45d26fea4e0ce8fc0a8b839035a5946903fca1.png" alt="image-20220722115526166"></p><p>先安装 vim 和 ca-certificates</p><p>(没错,这个系统非常精简)</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">$ apt-get update</span><br><span class="line">$ apt-get install vim</span><br><span class="line">$ apt-get install ca-certificates</span><br></pre></td></tr></table></figure><p>然后换源</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ vim /etc/apt/sources.list</span><br></pre></td></tr></table></figure><p>进入 Vim 界面后不要忙着进入编辑模式,输入 gg</p><p>然后输入 dG 就可以方便的删除所有内容了</p><p>接着粘贴清华镜像源</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line">deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse</span><br><span class="line"><span class="comment"># deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse</span></span><br><span class="line">deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse</span><br><span class="line"><span class="comment"># deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse</span></span><br><span class="line">deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse</span><br><span class="line"><span class="comment"># deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse</span></span><br><span class="line">deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-security main restricted universe multiverse</span><br><span class="line"><span class="comment"># deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-security main restricted universe multiverse</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 预发布软件源,不建议启用</span></span><br><span class="line"><span class="comment"># deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-proposed main restricted universe multiverse</span></span><br><span class="line"><span class="comment"># deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-proposed main restricted universe multiverse</span></span><br></pre></td></tr></table></figure><p>然后更新源</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ apt-get update</span><br></pre></td></tr></table></figure><p>接着去除最小化</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ unminimize</span><br></pre></td></tr></table></figure><h1 id="演示-Ubuntu-SSH"><a href="#演示-Ubuntu-SSH" class="headerlink" title="演示:Ubuntu SSH"></a>演示:Ubuntu SSH</h1><p>先更新源</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ apt-get upgrade</span><br></pre></td></tr></table></figure><p>然后安装 openssh</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ apt-get install openssh-server</span><br></pre></td></tr></table></figure><p>设置一个 ROOT 密码</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ passwd</span><br></pre></td></tr></table></figure><p>修改 SSH 的配置文件</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ vim /etc/ssh/sshd_config</span><br></pre></td></tr></table></figure><p>因为默认是注释了 <strong>PermitRootLogin prohibit-password</strong> 的,所以只需要允许 Root 登录就行</p><p>添加这一行</p><p><code>PermitRootLogin yes</code></p><p>重启服务</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ /etc/init.d/ssh restart</span><br></pre></td></tr></table></figure><p>然后就可以 SSH 了</p>]]></content>
<summary type="html"><p>废话不多说,先看配置</p>
<p>作为小米家主打电竞的路由器,AX9000 的配置还是非常强劲的</p>
<h2 id="硬件参数"><a href="#硬件参数" class="headerlink" title="硬件参数"></a>硬件参数</h2><p><stro</summary>
<category term="docker" scheme="https://blog.slqwq.cn/categories/docker/"/>
<category term="docker" scheme="https://blog.slqwq.cn/tags/docker/"/>
</entry>
<entry>
<title>适用于 Android™ 的 Windows 子系统 Magisk + LSPosed 指南</title>
<link href="https://blog.slqwq.cn/2022/posts/e5bb64/index.html"/>
<id>https://blog.slqwq.cn/2022/posts/e5bb64/index.html</id>
<published>2022-06-25T19:10:05.000Z</published>
<updated>2023-02-01T11:29:35.177Z</updated>
<content type="html"><![CDATA[<blockquote><p>⚠ 更新于2022/12/28 19:28 注意,MagiskOnWSA 已经被 GitHub 封禁</p><p>如果有需要,可以尝试另一个项目 <a href="https://github.com/PeterNjeim/MagiskOnWSA/releases/latest">PeterNjeim/MagiskOnWSA</a></p><p>此 <code>repo</code> 已经禁止 <code>fork</code> 有需要可以使用 GitHub 的 import 导入</p></blockquote><p>如题,这篇文章讲一讲 WSA 怎么样拥有 Magisk + LSPosed</p><h1 id="构建并安装你自己的-WSA"><a href="#构建并安装你自己的-WSA" class="headerlink" title="构建并安装你自己的 WSA"></a>构建并安装你自己的 WSA</h1><p><a href="https://github.com/LSPosed/MagiskOnWSA">https://github.com/LSPosed/MagiskOnWSA</a></p><p>这是 LSPosed 官方发布的 MagiskOnWSA 的 Actions</p><p><img src="https://i0.hdslb.com/bfs/album/8c26df95d1d55da03b94d52f88bf562950e1f595.png" alt="image-20220625191348873"></p><p>进入后 Fork 仓库</p><p>Fork 完后进入 Actions</p><p><img src="https://i0.hdslb.com/bfs/album/7ab66f2448d02ce0449196aab7df7ac7ce059d9d.png" alt="image-20220625191437234"></p><p>按钮点上</p><p>然后进入 <code>Build WSA</code> 这个 Workflow</p><p>运行 Workflow</p><p>要这样配置</p><p><img src="https://i0.hdslb.com/bfs/album/c99cdec0fadaaad474c5b162751a10b98cea695b.png" alt="image-20220625191535713"></p><p>如果你要更改也是可以的</p><p><code>Build arch</code> 代表构建的 WSA 版本,一般都是 x64</p><p><code>WSA release type</code> 是 WSA 发布的通道,我一般选择<code>Slow</code></p><p><code>Magisk version</code> 是面具的版本,一般 <code>Stable</code> 就够用了,要尝鲜的可以用 <code>Beta</code> 或者 <code>Canary</code></p><p><code>Variants of gapps</code> 要选择 Pico,选其他的也可以,不过工作流结束完后会有提示,<code>OpenGapps</code> 不支持 Android 12</p><p><code>Remove Amazon AppStore</code> 这个选 <code>remove</code> 就好,把亚马逊商店删掉</p><p><code>Root solution</code> 选 <code>Magisk</code> / <code>None</code> 就不会 Root</p><p>选好之后点击 <code>Run Workflow</code></p><p>运行好后进入 <code>Artifacts</code> 下载构建产物<img src="https://i0.hdslb.com/bfs/album/1d4f388eeb36e1fa822be14f537f18709802f851.png" alt="image-20220625192106452"></p><p>这里的 1.95 GB 是源文件大小,用我的配置下载下来差不多是 870 MB 左右</p><p>下载完后解压</p><p>运行 <code>Install.ps1</code></p><p><img src="https://i0.hdslb.com/bfs/album/e160d68152d371e91a7e611860d5cca8f60637e2.png" alt="image-20220625192200710"></p><p>等到部署完成</p><p>这里 WSA 就安装完成了</p><h1 id="配置-WSA"><a href="#配置-WSA" class="headerlink" title="配置 WSA"></a>配置 WSA</h1><p>打开 WSA 设置</p><p>先配置图形</p><p><img src="https://i0.hdslb.com/bfs/album/9645173950d48ab71b861ef522e9ca9fe59a9e38.png" alt="image-20220625192321117"></p><blockquote><p>⚠ Tips: Android 子系统目前 GPU 利用还不是很好,不要想着玩游戏</p></blockquote><p>转到开发人员</p><p>打开开发人员模式</p><p><img src="https://i0.hdslb.com/bfs/album/2549ea27822245bdd9bbd88488f932bc8533d7f8.png" alt="image-20220625192428910"></p><h1 id="安装-ADB"><a href="#安装-ADB" class="headerlink" title="安装 ADB"></a>安装 ADB</h1><p><a href="https://developer.android.google.cn/studio/releases/platform-tools?hl=zh-cn">Android Platform Tools</a></p><p>安装 ADB,解压到C盘</p><p>进入高级系统设置 -> 环境变量 -> Path</p><p>把 ADB 目录写进去<img src="https://i0.hdslb.com/bfs/album/2f75f209084d73027936dcc61ed56d31707ea627.png" alt="image-20220625192621523"></p><h1 id="配置-Magisk"><a href="#配置-Magisk" class="headerlink" title="配置 Magisk"></a>配置 Magisk</h1><p>打开 Magisk</p><p>点击小齿轮</p><p>把<code>Systemless hosts</code>和<code>Zygisk</code>打开</p><p><img src="https://i0.hdslb.com/bfs/album/9cdc91f8ea1f8b5418586015adc92f0a0338d072.png" alt="image-20220625192725927"></p><p>重启子系统</p><p>如果主页这样显示就 OK 了</p><p><img src="https://i0.hdslb.com/bfs/album/0703670b18b07223bbe9425f00613183aaf51e4d.png" alt="image-20220625192815258"></p><h1 id="安装-LSPosed"><a href="#安装-LSPosed" class="headerlink" title="安装 LSPosed"></a>安装 LSPosed</h1><p><a href="https://github.com/LSPosed/LSPosed/">LSPosed Repo</a></p><p>下载最新的 <code>Release</code>中的 <code>Zygisk</code> 版本</p><p>放到一个位置,右键复制文件位置</p><p>进入 Terminal</p><p>连接到 WSA</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">adb connect 127.0.0.1:58526</span><br></pre></td></tr></table></figure><p>然后上传文件</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">adb push <文件位置> /sdcard/</span><br></pre></td></tr></table></figure><p><文件位置> 记得替换成你自己的</p><p>打开 Magisk 中的模块</p><p>从本地安装</p><p><img src="https://i0.hdslb.com/bfs/album/b19da1d0ac94e23e6c582bbd3fbe7a86f7d8c218.png" alt="image-20220625193313900"></p><p>选择 Pixel 5</p><p>点击刚上传的 LSPosed</p><p><img src="https://i0.hdslb.com/bfs/album/c2ecbc06751b69fff99b757e7b968496f389a0ec.png" alt="image-20220625193351560"></p><p>等待安装完成即可</p><h1 id="安装酷安"><a href="#安装酷安" class="headerlink" title="安装酷安"></a>安装酷安</h1><p><a href="https://www.coolapk.com/">CoolAPK</a></p><p>下载酷安安装包</p><p>终端命令:</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">adb install <文件位置></span><br></pre></td></tr></table></figure><h1 id="安装-MT管理器"><a href="#安装-MT管理器" class="headerlink" title="安装 MT管理器"></a>安装 MT管理器</h1><p>打开酷安</p><p>搜索 MT管理器,下载并安装</p><h1 id="安装-LSPosed-Manager"><a href="#安装-LSPosed-Manager" class="headerlink" title="安装 LSPosed Manager"></a>安装 LSPosed Manager</h1><p>打开 MT管理器,先授权超级用户权限</p><p>然后找到之前上传的 LSPosed 压缩包</p><p>右键长按并解压</p><p><img src="https://i0.hdslb.com/bfs/album/d075d9b1d29ffcb6e7cb4972aeb1233337e7a2bb.png" alt="image-20220625193900539"></p><p>进入解压后的文件夹,找到 <code>Daemon.apk</code></p><p>点击它,然后点击功能 - > 签名 -> V3</p><p>签名完成后安装 <code>Daemon_sign.apk</code></p><p>接着找到 <code>Manager.apk</code></p><p>安装它即可</p><p><img src="https://i0.hdslb.com/bfs/album/e29760d8ef2c7fa2f6b3160f20b3c7b97d559cc0.png" alt="image-20220625194038174"></p><p>这样就安装完成了</p><h1 id="怎样安装-Magisk-LSPosed-模块"><a href="#怎样安装-Magisk-LSPosed-模块" class="headerlink" title="怎样安装 Magisk / LSPosed 模块"></a>怎样安装 Magisk / LSPosed 模块</h1><p>先下载模块,用 <code>adb push <文件位置> /sdcard/</code> 上传,然后安装即可</p><h2 id="LSPosed-模块安装方法"><a href="#LSPosed-模块安装方法" class="headerlink" title="LSPosed 模块安装方法"></a>LSPosed 模块安装方法</h2><p>进入 MT管理器,找到上传的的模块(APK),安装他</p><p>然后进入 LSPosed Manager 启用即可</p>]]></content>
<summary type="html"><blockquote>
<p>⚠ 更新于2022/12/28 19:28 注意,MagiskOnWSA 已经被 GitHub 封禁</p>
<p>如果有需要,可以尝试另一个项目 <a href="https://github.com/PeterNjeim/MagiskOnWSA</summary>
<category term="Magisk" scheme="https://blog.slqwq.cn/categories/Magisk/"/>
<category term="Windows11" scheme="https://blog.slqwq.cn/tags/Windows11/"/>
<category term="Android" scheme="https://blog.slqwq.cn/tags/Android/"/>
<category term="Magisk" scheme="https://blog.slqwq.cn/tags/Magisk/"/>
</entry>
<entry>
<title>那些奇奇怪怪的图床</title>
<link href="https://blog.slqwq.cn/2022/posts/nvz8s3/index.html"/>
<id>https://blog.slqwq.cn/2022/posts/nvz8s3/index.html</id>
<published>2022-05-15T11:17:12.000Z</published>
<updated>2023-02-01T11:29:35.177Z</updated>
<content type="html"><![CDATA[<p>本文章首发于<a href="https://www.yuque.com/ladjeek/ygg4q6">语雀</a>!</p><p>通过各种高科技功能同步到<a href="https://blog.slqwq.cn">Hajeekn的博客</a></p><p>最近想用 IPFS 做图床但是发现的一堆奇奇怪怪的图床</p><p>(PS: 不会介绍传统的 GitHub + JSdelivr / SM.MS / 路过图床)</p><h1 id="Bilibili-图床"><a href="#Bilibili-图床" class="headerlink" title="Bilibili 图床"></a>Bilibili 图床</h1><p>十分简单</p><p>PicGO 搜索 bilibili</p><p><img src="https://i0.hdslb.com/bfs/album/cf1ae1497dece72e055eb53e76ab22cce8edbd7f.png" alt="img"></p><p>接着配置 Bilibili 图床</p><p><img src="https://i0.hdslb.com/bfs/album/cdfe3d7b91a9e90d70b5b98f73cc210c3e3818af.png" alt="image-20220515095616065"></p><p>SESSDATA 可以登录哔哩哔哩后查看</p><p>进入哔哩哔哩,按下 F12</p><p>定位到应用 -> COOKIE</p><p><img src="https://i0.hdslb.com/bfs/album/b9641807e390e3cb6400dfde505d355fed04efe7.png" alt="image-20220515095718144"></p><p>选择 <code>https://www.bilibili.com</code></p><p><img src="https://i0.hdslb.com/bfs/album/414a2c8e5ac3a5468149e9ba127d0ee4a13567fc.png" alt="image-20220515095812119"></p><p>在名称内找到 SESSDATA</p><p>点击它</p><p><img src="https://i0.hdslb.com/bfs/album/acf7ca1d8eb1dd61ad279ba9d0d261ea46e67052.png" alt="image-20220515100404765"></p><p>然后在 Cookie Value 中复制值,粘贴进去</p><p>之后确定,设置默认图床即可</p><h2 id="良心的处理参数"><a href="#良心的处理参数" class="headerlink" title="良心的处理参数"></a>良心的处理参数</h2><p>哔哩哔哩图床有十分良心的处理参数</p><div class="table-container"><table><thead><tr><th>Type</th><th>URL</th></tr></thead><tbody><tr><td>原图</td><td>不做更改</td></tr><tr><td>原分辨率, 质量压缩</td><td>原链接 + @1e_1c.jpg</td></tr><tr><td>原分辨率, 质量压缩(WEBP)</td><td>原链接 + @1e_1c.webp</td></tr><tr><td>规定宽, 高度自适应, 质量压缩(可变 WEBP)</td><td>原链接 + @104w_1e_1c.jpg</td></tr><tr><td>规定高, 宽度自适应, 质量压缩(可变 WEBP)</td><td>原链接 + @104h_1e_1c.jpg</td></tr><tr><td>规定高宽, 质量压缩(可变 WEBP)</td><td>@104w_104h_1e_1c.jpg</td></tr><tr><td>原分辨率(WEBP)</td><td>@104w_104h_1e_1c.webp</td></tr></tbody></table></div><p>这是 哔哩哔哩 的处理参数</p><p>哔哩哔哩还有许多节点可以选择</p><h2 id="自定义-CDN"><a href="#自定义-CDN" class="headerlink" title="自定义 CDN"></a>自定义 CDN</h2><p>金山 CDN 路线:</p><ul><li>i0.hdslb.com</li><li>i2.hdslb.com</li></ul><p>阿里 CDN 路线:</p><ul><li>i1.hdslb.com</li><li>14.hdslb.com</li><li>s1.hdslb.com</li><li>s3.hdslb.com</li></ul><p>腾讯 CDN 路线:</p><ul><li>13.hdslb.com</li></ul><p>未知 CDN 路线:</p><ul><li>s2.hdslb.com</li></ul><blockquote><p>Bilibili 图床有防盗链,如果你要在你自己的网站中用 Bilibili 图床,得先配置头</p></blockquote><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag"><<span class="name">meta</span> <span class="attr">name</span>=<span class="string">"referrer"</span> <span class="attr">content</span>=<span class="string">"no-referrer"</span>></span></span><br></pre></td></tr></table></figure><blockquote><p>如果你用的 Hexo - Butterfly 则可以在配置文件中这样配置</p></blockquote><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">inject:</span></span><br><span class="line"> <span class="attr">head:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string"><meta</span> <span class="string">name="referrer"</span> <span class="string">content="no-referrer"></span></span><br></pre></td></tr></table></figure><h2 id="配套食用"><a href="#配套食用" class="headerlink" title="配套食用"></a>配套食用</h2><p><a href="https://github.com/xlzy520/bilibili-img-uploader">浏览器插件</a></p><p><a href="https://github.com/xlzy520/typora-plugin-bilibili">Typora 插件</a></p><blockquote><p>配合 typora 食用更佳</p><p>如果用了很久之后,在上传时出现了错误,那就是 SESSDATA 过期了,重新去生成一个就好</p></blockquote><h1 id="NPM-UNPKG-镜像"><a href="#NPM-UNPKG-镜像" class="headerlink" title="NPM + UNPKG 镜像"></a>NPM + UNPKG 镜像</h1><blockquote><p>使用这个方法前记得切换回原来 NPM 的注册表.因为其他镜像没有发布这个功能</p></blockquote><p>十分简单</p><p>本地先登录,接着创建包,然后初始化版本,最后发布</p><p>指令:</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">$ npm login</span><br><span class="line">$ npm init -y</span><br><span class="line">$ npm version patch</span><br><span class="line">$ npm publish</span><br></pre></td></tr></table></figure><p>这样一个 npm 包就发布完了</p><p>接下来是收集的一些镜像</p><ul><li><a href="https://npm.elemecdn.com/">https://npm.elemecdn.com/</a> 饿了么(阿里 CDN)</li><li><a href="https://unpkg.zhimg.com/">https://unpkg.zhimg.com/</a> 知乎(阿里 CDN)</li><li><a href="https://shadow.elemecdn.com/">https://shadow.elemecdn.com/</a> 饿了么(阿里)(这个停止维护了)</li><li><a href="https://code.bdstatic.com/npm/">https://code.bdstatic.com/npm/</a> 百度(百度 CDN)</li><li><a href="https://cdn1.tianli0.top/npm/">https://cdn1.tianli0.top/npm/</a> Jsdelivr(备案没封前是网宿 CDN | 后来备案封后是 Cloudflare + Fastly + Gcore)(可以自定义节点)</li></ul><p>Jsdelivr 自定义节点只需要:</p><p>gcore.jsdelivr.net</p><p>fastly.jsdleivr.net</p><p>即可</p><h1 id="4EVERLAND-BUCKET"><a href="#4EVERLAND-BUCKET" class="headerlink" title="4EVERLAND BUCKET"></a>4EVERLAND BUCKET</h1><blockquote><p>这应该是 IPFS 的另一个方案(但是最多 1G)</p></blockquote><h2 id="PicGo-插件安装"><a href="#PicGo-插件安装" class="headerlink" title="PicGo 插件安装"></a>PicGo 插件安装</h2><p><img src="https://i0.hdslb.com/bfs/album/a331f344fec5938cf88bb31b96eb617ca7aa912a.png" alt="image-20220515102843681"></p><p>搜索 s3 并安装</p><p>然后就去 4EVERLAND 注册一个账户</p><p><a href="https://4everland.org/">https://4everland.org/</a></p><p>这个网站似乎只能用以太坊钱包登录,GitHub 登录会提示不支持了(</p><p>我用的 MetaMask</p><p>注册之后创建一个桶<img src="https://i0.hdslb.com/bfs/album/18d86351cd8e59f2952403b87e6148a011a0c8b7.png" alt="image-20220515103035770"></p><h2 id="生成-API-TOKEN"><a href="#生成-API-TOKEN" class="headerlink" title="生成 API TOKEN"></a>生成 API TOKEN</h2><p>点击你账户, 选择设置</p><p>转到 Auth Token</p><p>选择 Bucket Auth Tokens</p><p>点击 Generate 即可</p><p><img src="https://i0.hdslb.com/bfs/album/6a6280b7d227e71f85fe3ac5d6c723a1624b10b2.png" alt="image-20220515103143196"></p><blockquote><p>本文章的 Key 在发布之前就删掉了,不要想着搞坏事</p></blockquote><p>之后进入 PicGo 配置下</p><p>转到 Amazon S3</p><p><img src="https://i0.hdslb.com/bfs/album/0c17cef3800acd7e24cb513332b581b7e533d734.png" alt="image-20220515103304436"></p><p>ID 和 密钥粘贴进去</p><p>桶写你创建桶的时候的名字</p><p>节点用 <a href="https://endpoint.4everland.co">https://endpoint.4everland.co</a></p><p>自定义域名是 桶名.4everland.store</p><p>最后记得把这两个选项打开</p><p><img src="https://i0.hdslb.com/bfs/album/2cfae6b3b35c40363da4d245be35ddbe689c6a48.png" alt="image-20220515103434098"></p><h1 id="IPFSUPLOAD-真正意义上的-IPFS-图床"><a href="#IPFSUPLOAD-真正意义上的-IPFS-图床" class="headerlink" title="IPFSUPLOAD(真正意义上的 IPFS 图床)"></a>IPFSUPLOAD(真正意义上的 IPFS 图床)</h1><p>本地装一个 IPFS DESKTOP</p><p>等他启动后先看端口</p><p><img src="https://i0.hdslb.com/bfs/album/4f632ddca72f5fd73c04b363a3bcc71c0ed32a46.png" alt="image-20220515103737939"></p><p>图中圈着的就是端口,然后去浏览器访问一下看看正不正常</p><p><code>http://localhost:5001/api/v0/add?pin=true</code></p><p>如果正常应该会提示 405 - Method Not Allowed</p><p>接着就是上传了</p><p>PicGo 安装一个 web-uploader</p><p><img src="https://i0.hdslb.com/bfs/album/900e4ad2f69eb49de3c2cc768a570d0a4d64e341.png" alt="image-20220515104103681"></p><p>然后配置如图</p><p><img src="https://i0.hdslb.com/bfs/album/f3964d51aa4ec7628e29561b436244322a9dc43d.png" alt="image-20220515104559575"></p><p>IPFS网关我是用的我自己的,所以打了马赛克,你们可以自己先用 workers 反代一次,然后再用 CDN 过墙</p><p>你也可以直接 CDN 我代理好的 worker (IPFS 官网)</p><p>PS :我没有反代 IPFS 网关</p><p>回源: <strong>dl2p.taiyu.workers.dev</strong></p><p>回源 HOST: <strong>dl2p.taiyu.workers.dev</strong></p><p>回源端口: 443</p><p>回源协议: HTTPS</p><p>速度测试:</p><p><img src="https://dl2p.hesiy.cn/ipfs/QmeeNLDPcfC2SZnC5N2TZTSY19P4nRPHhVoqMrYJvuXVLX?filename=Genshin%20Impact.webp" alt=""></p><blockquote><p>不给滥用,我设置了防盗链</p></blockquote><h1 id="DogeDoge-图床"><a href="#DogeDoge-图床" class="headerlink" title="DogeDoge 图床"></a>DogeDoge 图床</h1><p>没有什么说的,速度炒鸡快,使用要申请,现在应该申请不到了</p><p>有的可以用</p><p><img src="https://i0.hdslb.com/bfs/album/14b08dccb38ff79f6935a6a764a65b20773bf724.png" alt="image-20220515104734675"></p><h1 id="BACKBLAZE-B2-Cloudflare"><a href="#BACKBLAZE-B2-Cloudflare" class="headerlink" title="BACKBLAZE B2 + Cloudflare"></a>BACKBLAZE B2 + Cloudflare</h1><p>首先猜到有人要提问: 为什么要加 Cloudflare?</p><p>因为 BACKBLAZE 有流量计费,但是他加入了带宽联盟,再加上 Cloudflare 超长缓存,≈ 完全免费</p><p>但是有10G空间</p><p>这是超出10G的价格</p><p><img src="https://i0.hdslb.com/bfs/album/6389ccc4522227dd936a8eedfeb6988ecd39616c.jpg" alt=""></p><p>注册方法 ChenYFan 大佬已经写过了,与其再写一篇问文章,不如直接用他的<del>(其实就是懒)</del></p><p>直接贴:</p><p><a href="https://blog.cyfan.top/p/ce240368.html">https://blog.cyfan.top/p/ce240368.html</a></p><h1 id="云存储做图床"><a href="#云存储做图床" class="headerlink" title="云存储做图床"></a>云存储做图床</h1><blockquote><p>用 OneDrive Google Drive 做图床真的是闲</p></blockquote><h2 id="OneDrive"><a href="#OneDrive" class="headerlink" title="OneDrive"></a>OneDrive</h2><p>参考 <a href="https://ovi.swo.moe/zh/docs/getting-started">Spencer Woo</a> 去搭建一个 onedrive-vercel-index 就行</p><h2 id="Google-Drive"><a href="#Google-Drive" class="headerlink" title="Google Drive"></a>Google Drive</h2><p>参考 <a href="https://blog.cyfan.top/p/74e90c90.html">ChenYFan</a> 搭建一个 GDIndex 即可</p><h1 id="大厂的对象储存"><a href="#大厂的对象储存" class="headerlink" title="大厂的对象储存"></a>大厂的对象储存</h1><h2 id="阿里云-OSS"><a href="#阿里云-OSS" class="headerlink" title="阿里云 OSS"></a>阿里云 OSS</h2><blockquote><p>有很多人写,自己谷歌,反正价格挺便宜的</p></blockquote><h2 id="腾讯云-COS"><a href="#腾讯云-COS" class="headerlink" title="腾讯云 COS"></a>腾讯云 COS</h2><blockquote><p>🤢 这东西不推荐,计费十分离谱,而且配置头超长缓存后 COS 会在用户请求时悄悄篡改 max-cache</p><p>新用户有 6 个月免费额度,之后就要开始付费了(</p><p>⚠ 流量包和储存包都很贵</p></blockquote><h2 id="又拍云-UOS"><a href="#又拍云-UOS" class="headerlink" title="又拍云 UOS"></a>又拍云 UOS</h2><blockquote><p>又拍云似乎是没有免费额度的,但是又拍云有开发者联盟,只需要把他的 Logo 挂在你的网站页脚就行,甚至还能用一个徽章</p></blockquote><p>徽章这样配置就行了</p><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag"><<span class="name">img</span> <span class="attr">src</span>=<span class="string">"https://img.shields.io/badge/CDN-%E5%8F%88%E6%8B%8D%E4%BA%91-00b6ff?style=flat&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAABS2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+nhxg7wAABs1JREFUSInllv2PVFcZxz/n3LfZmdmd3ZndZWGhhV0qYLaFEgzQpog12tZYbVRCSa00mLap6Q+aNERp5QcVlRhi0GjaGElromI08aU1tMRXWmspRaEVbIDtdimwy77M7uy83Xvn3nP84c7b7oD/QE8yyT13znO/z/f7nOcF3m9L1B4OnNYYEoSG165kGZkukLLjdEmXiew4yum7+4qK31u2rduLFXOgEEoQCrQs9RjepaW2f35Nu/9QqRh4Fi4jrkHCMmhTitlCBcOIoP768CoAzGt5owFLQBKfad/Yflau+Mo4qY0IE8qAUbXUgKT9ctFZVJAzqzcivLN+/JGY0H6HKD0riKGvw7gFWAFtUmMTyFPF5C+Gded2LBmBaB2BAigRyeMJ0jGPgxtiyX+MtW18/ZL1DLEMK/TER9eb+Z2GQGU1CK0b8gKy9uCYYJmQcUCgUm+U0qeGw/R2pIwAdbPvAiE0aAGux0MDc7eJAJ57V7+GZYAQjLDo8yd0z6lAqQ5bBbh+iF8JWxmP5XwSJrhCyz9NJU7mdHwwknOBWEKAAq0EuIrPrKp8d3lb+M/HT/qvlsN2pKNRSoDUXAxSN+eKlWMPD7jrFi3pZc4NeHUh4+zcNMW5q/z47dLhi4X4IHYt2hFDBBFDpUmYJXoNb+y23tzPHlgRfu2F8bZ9s4W2zdgSpap2OopbzsysPUHX85YIcdU1YnxLX5pT0+59w+X4NqwmpgIIgUCxNF4+vsaY2bsknjtq+yYTnsGhMx33H8127SFp03KTBBAT/H3U+qTIZe9ambFfagHOl0OOjJs/wjCZdwtCARI2d899Z0iP7Rkv2J0ngu49xUCvu1R2+sJS6g4MAyF11deasY5+CjBs3jE6f3KrMXlDC/Cfr0xuuegtWYIpmjwXUA7YcbP69tb2ypPfO5naPyJ7d4fKioLUDihdVxZEpI4ApGiEyoKLM8aydyx5J/CXeTE+m5PbkFZV4qpBoPlAJnh7R7rw5G8vm9+/4PfvDg0rSiMdgYraeQ0xGVZu78o9tSUx9ViK0pUGc0CbTNtdu1oYG7Geu+vFAaLbqz0+3B1sf2WKnhcvJ79MvCn21JiKiGIAt6amn9scK+4brpiskOHMKRU/jCSS2xG8ddVbVcOrM54KrBvqoERyO4YqLTaKb76ct7+JtufHfuEyYKIkeoKKpN12ySs1QF28qkJmrL8FuBwqv7HTEELC4b/Fks/EjPgcDq05TeO8EJrhSten35KLDjpmhfd8/QBNYY6clp0twC1LAmGQLJdyCF08gub/MtYCECZni+JBTyYwrKS7ML2UbrxplEwpHeoJHkk9IPO/z3QluKen/GC/MXuM8PrIQkc3+sY298hAwsIQbSvnAWuwpSq3AGesyhhh08EwZKBdHi+EDjEkyxLBm9dtNYjqXx5DTnHvsCeXFCoi1fh6VPEsEYy3ACf1zN9qlRE0whAcdzM/GCk5Hz+W1dv+U0jubFy+aqdpFsCD9en8r4ba9fDLU6mfI8wo7Zqc65Ccru3q6dQtC79EVb6AUc1lQzJakP2jOvUSZrqKUgu0QMvqNgBkyOpk7ndfXKruP+11Pf5uwdgqHYWqHwIIGTTLh88tBN7a3/3i+VF/ZtyzujAFut57a0d0A1sDpdzoUkfMdCTNs4Pm3MG1nfL1Fy7bjxwtxn6IXfOzauNDZ6w8u67Pf/7IQuDB3hSfCMtPHDoX/hTDaJKxXgzR1ca/PjnzxOL47IGgXOYG2+U9f/Gyw1Op31yYsz6LKcEEpZryyPe5d1B+dWnf4rrwdeATo+P0yfBQr53cOVHp2oIjWpo/LgwlZp/etdo78MeJ9DeO5cUmM+fflNcdy9E2ONGkoWvZIQSUFGt63ZNb+hPPzPr1S9KUTlYndizDl1Zan+qOlXNUqobVD2gPMubcyP4PlR57Ix979MhI+9fLRsfH8qJ7OYYNhkZo1dRfNATQ3ebmdq2073KFQTmgFfjG7jjprjgrMsncPb2FDXEKkwRV8BCEGbD7g2LNmdnYwLPn257Gro6kNMaixlQlwJckVXbyvszsBseJTU+VqA4JC4DdisavwNUy2Ia4sCk5OdRvzLxCBXAVj64NdvTGtbf337ETaBvMa3V9EQ2BFbgpkf/XnbHpIUuHF2YrYMqGgPNi3OxJIZQgjYmNidIdYwHfyjpZ3ZGtHN6fXXbOVfE0MebncHXMAUiL4uRHlpQP3pJW+04OC3KhST+tw8k152oJeEpQNGxWx0tP+WGeK0Xbcb3SWCYpTS80ul0lECi0EF6n8LNJOzjThvuHobj/603dTnFcORQDQcf1y937bP0Pc6b8FW3Czt0AAAAASUVORK5CYII="</span>></span></span><br></pre></td></tr></table></figure><p>但是这个网站似乎有点慢,你可以把他的 SVG 下载下来放在本地引用</p><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag"><<span class="name">img</span> <span class="attr">src</span>=<span class="string">"本地位置.svg"</span>></span></span><br></pre></td></tr></table></figure><h1 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h1><p>好用的图床千千万,你要自己去发现</p><p>我总结了 7 个免费图床,其中 DogeDoge 图床需要申请</p><p>如果细数的话,共有 8 个免费图床(每个云存储单独算一个)</p>]]></content>
<summary type="html"><p>本文章首发于<a href="https://www.yuque.com/ladjeek/ygg4q6">语雀</a>!</p>
<p>通过各种高科技功能同步到<a href="https://blog.slqwq.cn">Hajeekn的博客</a></p>
<p>最近想</summary>
<category term="picgo" scheme="https://blog.slqwq.cn/categories/picgo/"/>
<category term="picgo" scheme="https://blog.slqwq.cn/tags/picgo/"/>
</entry>
<entry>
<title>GitHub 的多种访问方式</title>
<link href="https://blog.slqwq.cn/2022/posts/gd503y/index.html"/>
<id>https://blog.slqwq.cn/2022/posts/gd503y/index.html</id>
<published>2022-05-14T07:53:12.000Z</published>
<updated>2023-02-01T11:29:35.177Z</updated>
<content type="html"><![CDATA[<h1 id="Dev-Sidecar"><a href="#Dev-Sidecar" class="headerlink" title="Dev-Sidecar"></a>Dev-Sidecar</h1><blockquote><p>请注意,由于开发者边车的 Gitee 仓库被封锁,所以这个项目不再更新了</p></blockquote><p><strong>在使用之前,请观看知乎的一个讨论</strong><br><a href="https://www.zhihu.com/question/498939985">如何评价《网络数据安全管理条例(征求意见稿)》第四十一条和第六十六条:建立数据跨境安全网关?</a></p><hr><p>进入开发者边车的 <a href="https://github.com/docmirror/dev-sidecar/releases/latest">Release</a><br>找到符合自己系统的版本,点击下载<br>下载完成后安装,打开<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202205140803394.png#crop=0&crop=0&crop=1&crop=1&id=GAQgy&originHeight=923&originWidth=1107&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>系统代理建议不要开启<br>加速服务可以设置端口<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202205140804781.png#crop=0&crop=0&crop=1&crop=1&id=dgAHc&originHeight=838&originWidth=856&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>其他的就没什么好设置的了,只需要把 NPM 加速和 Git 加速打开即可<br>But 因为这个软件已经停更了,所以我非常不建议各位用</p><h1 id="SwitchHosts-GitHub520"><a href="#SwitchHosts-GitHub520" class="headerlink" title="SwitchHosts + GitHub520"></a>SwitchHosts + GitHub520</h1><p>这个项目是以 Hosts 来加速的<br>首先去 SwitchHosts 的 <a href="https://github.com/oldj/SwitchHosts/releases/latest">Release</a><br>接着下载安装<br>SwitchHosts 这样配置即可<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202205140823.png?w=1280#crop=0&crop=0&crop=1&crop=1&id=QxTW3&originHeight=600&originWidth=1000&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt="">如果遇到没有写入权限,就进入 Hosts 文件的属性,配置一下权限和去掉只读,玩 Windows 的应该都知道提权这东西吧</p><h1 id="Watt-Toolkit"><a href="#Watt-Toolkit" class="headerlink" title="Watt Toolkit"></a>Watt Toolkit</h1><blockquote><p>⚠ 更新: 2022/12/28 19:53 新版的 Watt Toolkit 已经去掉了 Socks 设置</p></blockquote><p><a href="https://steampp.net/">Watt Toolkit</a></p><p>下载安装没什么好说的</p><p>进入软件勾选上所有的加速选项,然后选择 <code>Hosts 加速模式</code> 即可<br>如果怕加速不了的话就勾上加速选项里的 <code>Socks5</code> 代理<br>然后配置一下</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">sudo git config --global http.proxy <span class="string">'socks5://127.0.0.1:8868'</span></span><br><span class="line">sudo git config --global https.proxy <span class="string">'socks5://127.0.0.1:8868'</span></span><br></pre></td></tr></table></figure><p>8868 记得替换成你自己的端口</p><h1 id="题外话"><a href="#题外话" class="headerlink" title="题外话"></a>题外话</h1><p>加速 npm 还是 Dev-Sidecar 和 local-npm 好用一点</p>]]></content>
<summary type="html"><h1 id="Dev-Sidecar"><a href="#Dev-Sidecar" class="headerlink" title="Dev-Sidecar"></a>Dev-Sidecar</h1><blockquote>
<p>请注意,由于开发者边车的 Gitee 仓库</summary>
<category term="github" scheme="https://blog.slqwq.cn/categories/github/"/>
<category term="github" scheme="https://blog.slqwq.cn/tags/github/"/>
<category term="gfw" scheme="https://blog.slqwq.cn/tags/gfw/"/>
</entry>
<entry>
<title>IPFS - 一个基于点对点网络的超媒体协议</title>
<link href="https://blog.slqwq.cn/2022/posts/ys6wh9/index.html"/>
<id>https://blog.slqwq.cn/2022/posts/ys6wh9/index.html</id>
<published>2022-05-03T20:00:46.000Z</published>
<updated>2023-02-01T11:29:35.177Z</updated>
<content type="html"><![CDATA[<p>本文章首发于<a href="https://www.yuque.com/ladjeek/ygg4q6">语雀</a>!<br>通过各种高科技功能同步到<a href="https://blog.slqwq.cn">Hajeekn 的博客</a></p><h1 id="IPFS’s-Author"><a href="#IPFS’s-Author" class="headerlink" title="IPFS’s Author"></a>IPFS’s Author</h1><p>IPFS’s Author 是 <code>Juan Benet</code><br><code>Juan Benet</code>在 2014 年创建了 <code>Protocol Labs</code> (协议实验室)<br>协议实验室旗下的项目:</p><ul><li>IPFS</li><li>FileCoin</li></ul><p>协议实验室旨在如何构建下一代互联网</p><h1 id="What’s-IPFS"><a href="#What’s-IPFS" class="headerlink" title="What’s IPFS?"></a>What’s IPFS?</h1><p>依照官网的介绍,总的来说,IPFS 就是一种点对点超媒体协议,它可以使网络更快、更安全、更开放<br>本质上来说,它就是一种去中心化互联网(Peer to Peer) ≈ P2P<br><del>没错,就是孽种 P2P 下载器</del><br><del>这么牛的项目怎么是 P2P 下载器呢?</del> P2P 下载器只是个披着羊皮的狼<br>P2P(Peer to Peer)依靠用户群交换信息<br>以 number.exe 为例<br>当你上传后,无数个 Node(用户) 会瓜分你的 number.exe<br>他们将你的文件分成许多分片,瓜分分片<br>他们在瓜分的同时会获得奖励</p><blockquote><p><strong>是不是听起来很神奇?对的,你没有付出任何东西,别人却能获得奖励,而且你既满足储存文件的需求,储存你文件的人也能得到金钱.这种机制,叫做 FileCoin.你可以把它想象成 Bittorrent+BitCoin 的结合物,实际上他就是这样的.当然不完全是,但核心理念就是这样的.只不过,BitCoin 付出的是算力,而 FileCoin 付出的是硬盘.</strong></p></blockquote><p><strong>摘自 </strong><a href="https://blog.cyfan.top/">ChenYFan の Blog</a><br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202205031235496.png#crop=0&crop=0&crop=1&crop=1&id=PscbN&originHeight=546&originWidth=1025&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>这是 IPFS の不权威原理图(来自 <a href="https://blog.cyfan.top/">ChenYFan の Blog</a>)<br>所以,IPFS 相对于响应式请求(HTTP(S) / FTP)不同<br>传统的响应式请求由一个主服务器(或主集群)处理每一个请求,并贡献内容<br>而 IPFS 基于 Peer to Peer 技术,让每个 Node 都贡献,没有中心服务器(去中心化)</p><h2 id="更细致的解释"><a href="#更细致的解释" class="headerlink" title="更细致的解释"></a>更细致的解释</h2><p>IPFS 是一个基于 Git 模型版本管理 & DHT & CBA & Hash 等的产物<br>它基于 DHT(分布式哈希表) 进行寻址<br>而传统的响应式请求由 LBA(基于位置的寻址)<br>而这样,响应式请求的缺点就暴露了出来<br>LBA(基于位置的寻址) 它在查找时所看重的信息是位置,就好比一个网址 <code>https://blog.slqwq.cn/link/</code>如果这个位置被删除了,链接位置转移了,他就会暴露出<img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202205031245294.png#crop=0&crop=0&crop=1&crop=1&height=185&id=CQc00&originHeight=343&originWidth=289&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=&width=156" alt="">404 Not Found 错误<br>而 IPFS 所采用的 DHT(CBA 基于内容的寻址)就没有这个缺点<br>它在查找时所看重的信息是内容,不管你位置在哪里,只要找到的内容符合要查找的信息,那他就是正确的</p><h2 id="最后"><a href="#最后" class="headerlink" title="最后"></a>最后</h2><p>基于响应式请求(中心化网络)还有一个超级大大大大的弊端<br>那就是<br>非常容易引入审查<br>也就是类似于我们国家的 <code>**Great Firewall of China**</code><strong> <del>(GFW 是一个分布式的入侵检测系统,并不是一个严格意义上的防火墙)</del></strong><br>每个国家的 <code>**gov**</code> 可以很方便的 <code>**BAN**</code> 掉某个网站或者应用<br>引入一个具体事例<br>在 2017 年, <code>**Turkey's GOV**</code><strong>就用国家安全的理由禁掉了维基百科</strong><br><del>当然,去中心化也不能避免掉 Firewall 的屏蔽,只是不那么容易屏蔽掉罢了</del></p><h1 id="Use-IPFS-IPFS-Client"><a href="#Use-IPFS-IPFS-Client" class="headerlink" title="Use IPFS - IPFS Client"></a>Use IPFS - IPFS Client</h1><p>进入 <a href="https://github.com/ipfs/ipfs-desktop/releases">IPFS-Desktop の Releases</a><br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202205031300858.png#crop=0&crop=0&crop=1&crop=1&id=saIWx&originHeight=516&originWidth=1121&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>找到需要的客户端下载并安装<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202205031301473.png#crop=0&crop=0&crop=1&crop=1&id=Ry20g&originHeight=141&originWidth=843&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202205031302962.png#crop=0&crop=0&crop=1&crop=1&id=GJyn2&originHeight=449&originWidth=664&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>弹出防火墙警报请一定要允许<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202205031303835.png#crop=0&crop=0&crop=1&crop=1&id=MBCw0&originHeight=610&originWidth=768&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>在文件处可以上传文件<br>上传点击导入即可<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202205031305797.png#crop=0&crop=0&crop=1&crop=1&id=Oo6Mg&originHeight=974&originWidth=1762&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""></p><blockquote><p><strong>接下来,重点来了!</strong> > <strong>ipfs 分享文件有两种方式,是 ipfs 和 ipns,前者采用文件 hash 辨别文件,文件内容一旦改变,原来的链接无法更新,链接格式为 <a href="https://ipfs.io/ipfs/QmZCvMHrE56VqsejmG53xd9bW4RZjtFpLz46QMQjA81orL">https://ipfs.io/ipfs/QmZCvMHrE56VqsejmG53xd9bW4RZjtFpLz46QMQjA81orL</a> ;后者采用用户 id 辨别,内容允许更新,但是用户在线时间过短会导致无法同步,并且有可能暴露用户信息,后者格式为: <a href="https://ipfs.io/ipfs/QmQQKZphgJdEGhTp18NRvVdSJ3RJArRst2keKk3tZvmfPz?filename=index.html">https://ipfs.io/ipfs/QmQQKZphgJdEGhTp18NRvVdSJ3RJArRst2keKk3tZvmfPz?filename=index.html</a> .</strong> > <strong>如果你只是单个文件网页,此处比较建议使用 ipfs,ipns 可能离线时间过长导致无法下载。具体看个人所好。</strong> > <strong>ipfs 链接获取:点击 ··· ,选择复制哈希,在前面加上网关域名即可。</strong> > <strong>ipns 连接获取:点击 ··· ,选择分享,复制链接即可。</strong> > <strong>在善用技术上网的前提下访问 <a href="https://ipfs.io/ipfs/QmZCvMHrE56VqsejmG53xd9bW4RZjtFpLz46QMQjA81orL">https://ipfs.io/ipfs/QmZCvMHrE56VqsejmG53xd9bW4RZjtFpLz46QMQjA81orL</a> 显示目标界面</strong> > <strong>请注意,每次上传后一定要先访问一遍资源,否则文件是不会上传到 ipfs 服务器的!</strong></p></blockquote><p><strong>摘自 </strong><a href="https://blog.cyfan.top/">ChenYFan の Blog</a></p><h1 id="Use-IPFS-IPFS-Gateway"><a href="#Use-IPFS-IPFS-Gateway" class="headerlink" title="Use IPFS - IPFS Gateway"></a>Use IPFS - IPFS Gateway</h1><h2 id="JSProxy-IPFS-Gateway"><a href="#JSProxy-IPFS-Gateway" class="headerlink" title="JSProxy - IPFS Gateway"></a>JSProxy - IPFS Gateway</h2><p>因为 IPFS 默认的网关被 FW 了<br>所以我们可以通过 Worker JSProxy 的方式解锁你自己的网关</p><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="title function_">addEventListener</span>(<span class="string">"fetch"</span>, <span class="function">(<span class="params">event</span>) =></span> {</span><br><span class="line"> <span class="keyword">let</span> url = <span class="keyword">new</span> <span class="title function_">URL</span>(event.<span class="property">request</span>.<span class="property">url</span>);</span><br><span class="line"> url.<span class="property">hostname</span> = <span class="string">"werevless.herokuapp.com"</span>;</span><br><span class="line"> <span class="keyword">let</span> request = <span class="keyword">new</span> <span class="title class_">Request</span>(url, event.<span class="property">request</span>);</span><br><span class="line"> event.<span class="title function_">respondWith</span>(<span class="title function_">fetch</span>(request));</span><br><span class="line">});</span><br></pre></td></tr></table></figure><p>粘贴进去,访问 Worker 地址就能看到 404 了<br>然后在 IPFS Client 里复制地址,接在后面就能打开你上传的文件了<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202205031316414.png#crop=0&crop=0&crop=1&crop=1&id=hIYvu&originHeight=30&originWidth=766&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""></p><h2 id="JSProxy-Cloudflare-IPFS-Gateway"><a href="#JSProxy-Cloudflare-IPFS-Gateway" class="headerlink" title="JSProxy - Cloudflare IPFS Gateway"></a>JSProxy - Cloudflare IPFS Gateway</h2><p>我们可以通过 Worker JSProxy 的方式解锁你自己的 CNAME</p><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="title function_">addEventListener</span>(<span class="string">"fetch"</span>, <span class="function">(<span class="params">event</span>) =></span> {</span><br><span class="line"> <span class="keyword">let</span> url = <span class="keyword">new</span> <span class="title function_">URL</span>(event.<span class="property">request</span>.<span class="property">url</span>);</span><br><span class="line"> url.<span class="property">hostname</span> = <span class="string">"cloudflare-ipfs.com"</span>;</span><br><span class="line"> <span class="keyword">let</span> request = <span class="keyword">new</span> <span class="title class_">Request</span>(url, event.<span class="property">request</span>);</span><br><span class="line"> event.<span class="title function_">respondWith</span>(<span class="title function_">fetch</span>(request));</span><br><span class="line">});</span><br></pre></td></tr></table></figure><p>粘贴进去,就变成了基于 CIG 的你自己的 IPFS 网关</p><h1 id="Use-IPFS-Build-Blog"><a href="#Use-IPFS-Build-Blog" class="headerlink" title="Use IPFS - Build Blog"></a>Use IPFS - Build Blog</h1><p>搭建博客就等下次吧</p>]]></content>
<summary type="html"><p>本文章首发于<a href="https://www.yuque.com/ladjeek/ygg4q6">语雀</a>!<br>通过各种高科技功能同步到<a href="https://blog.slqwq.cn">Hajeekn 的博客</a></p>
<h1 id="I</summary>
<category term="p2p" scheme="https://blog.slqwq.cn/categories/p2p/"/>
<category term="ipfs" scheme="https://blog.slqwq.cn/categories/p2p/ipfs/"/>
<category term="p2p" scheme="https://blog.slqwq.cn/tags/p2p/"/>
<category term="peertopeer" scheme="https://blog.slqwq.cn/tags/peertopeer/"/>
</entry>
<entry>
<title>未备案使用国内服务器 & Cloudreve 部署指南</title>
<link href="https://blog.slqwq.cn/2022/posts/phiyrf/index.html"/>
<id>https://blog.slqwq.cn/2022/posts/phiyrf/index.html</id>
<published>2022-05-02T10:26:46.000Z</published>
<updated>2023-02-01T11:29:35.177Z</updated>
<content type="html"><![CDATA[<p>本文章首发于<a href="https://www.yuque.com/ladjeek/ygg4q6">语雀</a>!<br>通过各种高科技功能同步到<a href="https://blog.slqwq.cn">Hajeekn 的博客</a><br>正如标题所说<br>若欲正事未备案用国服务器,则不可得,故可以阿里云主机漏洞跳备案<br>跳备案仅适用于 CN 域名,其他域名请自己尝试<br><del>首先我们需要一个阿里云账户(废话)</del><br>然后实名认证(汝可用支付宝实名,或旧法实名)</p><h1 id="云服务器配置"><a href="#云服务器配置" class="headerlink" title="云服务器配置"></a>云服务器配置</h1><p>在创建云服务器时这样配置<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202205021034784.png#crop=0&crop=0&crop=1&crop=1&id=jeN9j&originHeight=554&originWidth=1171&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>实例选 n4.small<br>地域上海 A 区<br>带宽根据自己的需要调<br>然后典型 1h2g</p><h1 id="宝塔安装"><a href="#宝塔安装" class="headerlink" title="宝塔安装"></a>宝塔安装</h1><p>登陆上服务器<br>Ubuntu / Deepin:</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec</span><br></pre></td></tr></table></figure><p>CentOS:</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec</span><br></pre></td></tr></table></figure><p>Debian:</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh ed8484bec</span><br></pre></td></tr></table></figure><p><strong>不知道自己是什么系统?</strong><br><del>那你就干脆别用了</del><br>这是万能安装脚本:</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ <span class="keyword">if</span> [ -f /usr/bin/curl ];<span class="keyword">then</span> curl -sSO https://download.bt.cn/install/install_panel.sh;<span class="keyword">else</span> wget -O install_panel.sh https://download.bt.cn/install/install_panel.sh;<span class="keyword">fi</span>;bash install_panel.sh ed8484bec</span><br></pre></td></tr></table></figure><p>登上主机后安装 Nginx</p><h1 id="安装-Cloudreve"><a href="#安装-Cloudreve" class="headerlink" title="安装 Cloudreve"></a>安装 Cloudreve</h1><p>去 Cloudreve 的 GitHub 中找安装包<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202205021043200.png#crop=0&crop=0&crop=1&crop=1&id=l4mdr&originHeight=253&originWidth=1141&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>登录宝塔<br>创建一个文件夹<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202205021051338.png#crop=0&crop=0&crop=1&crop=1&id=zlJwp&originHeight=324&originWidth=618&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>创建完后选择远程下载<br>把地址粘贴进去,等待下载完成<br>然后点击 tar.gz 后面的解压<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202205021052056.png#crop=0&crop=0&crop=1&crop=1&id=AmzKD&originHeight=66&originWidth=1593&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>之后给解压出来的文件给 777 权限<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202205021052481.png#crop=0&crop=0&crop=1&crop=1&id=JsL3b&originHeight=53&originWidth=1581&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202205021052768.png#crop=0&crop=0&crop=1&crop=1&id=zZdj0&originHeight=310&originWidth=501&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>然后进入终端<br>安装 Screen</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">$ apt-get update</span><br><span class="line">$ apt-get install screen</span><br></pre></td></tr></table></figure><p>命令行启动 Screen</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ screen</span><br></pre></td></tr></table></figure><p>用 <code>cd</code> 命令进入文件夹</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ ./cloudreve</span><br></pre></td></tr></table></figure><p>启动 Cloudreve</p><h1 id="配置反向代理-amp-SSL"><a href="#配置反向代理-amp-SSL" class="headerlink" title="配置反向代理 & SSL"></a>配置反向代理 & SSL</h1><p>启动完后回到宝塔,添加站点<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202205021052856.png#crop=0&crop=0&crop=1&crop=1&id=ewZuC&originHeight=602&originWidth=801&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>创建完后进入反向代理<br>新建反向代理<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202205021052690.png#crop=0&crop=0&crop=1&crop=1&id=pL5we&originHeight=535&originWidth=813&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>目标 URL 写 cloudreve 启动的地址<br>配置完后提交<br>转到 SSL<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202205021052166.png#crop=0&crop=0&crop=1&crop=1&id=VtifT&originHeight=262&originWidth=567&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>选择 Let’s Encrypt<br>选择 DNS 验证(因为我们开了反向代理,不能用文件验证)<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202205021053253.png#crop=0&crop=0&crop=1&crop=1&id=ue0Qs&originHeight=314&originWidth=570&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>DNS 接口根据自己选择并配置<br>如果没有你的 DNS 提供商,就手动解析<br>配置完后勾选要申请 SSL 的域名<br>点击申请<br>这样就部署好了<br>之后记得在 DNS 提供商解析一下主机<br>A 记录到你鸡子的 IP</p><h1 id="关于账户"><a href="#关于账户" class="headerlink" title="关于账户"></a>关于账户</h1><p>看启动 cloudreve 时终端提示的管理员账户与密码即可</p>]]></content>
<summary type="html"><p>本文章首发于<a href="https://www.yuque.com/ladjeek/ygg4q6">语雀</a>!<br>通过各种高科技功能同步到<a href="https://blog.slqwq.cn">Hajeekn 的博客</a><br>正如标题所说<br></summary>
<category term="cloudreve" scheme="https://blog.slqwq.cn/categories/cloudreve/"/>
<category term="cloudreve" scheme="https://blog.slqwq.cn/tags/cloudreve/"/>
</entry>
<entry>
<title>短链接的解决方案</title>
<link href="https://blog.slqwq.cn/2022/posts/zroitiai/index.html"/>
<id>https://blog.slqwq.cn/2022/posts/zroitiai/index.html</id>
<published>2022-02-03T16:40:42.000Z</published>
<updated>2023-02-01T11:29:35.177Z</updated>
<content type="html"><![CDATA[<p>本文章首发于<a href="https://www.yuque.com/ladjeek/ygg4q6">语雀</a>!<br>通过各种高科技功能同步到<a href="https://blog.slqwq.cn">Hajeekn 的博客</a><br>方便跳转,所以有了短链接,这篇文章带来短链接的几个解决方案</p><h1 id="GitHub-issues-HTML-Free"><a href="#GitHub-issues-HTML-Free" class="headerlink" title="GitHub issues + HTML(Free)"></a>GitHub issues + HTML(Free)</h1><p>示例: <a href="https://to.slqwq.cn/apg/1">Click Me</a></p><h2 id="实现方法"><a href="#实现方法" class="headerlink" title="实现方法"></a>实现方法</h2><p>进入 <a href="https://service-dali9563-1259647411.sh.apigw.tencentcs.com/?link=4ey4iy4iy4my2cy1hy1hy4iy49y1gy4ly4ay4ny4hy4ny1gy45y48y1hy47y4my41y1hy24&hex=24&xor=6">Shortener</a> 的仓库<br>Fork 仓库<br>然后部署到各种平台<br>以 CloudFlare 为例子<br>进入 <a href="https://service-dali9563-1259647411.sh.apigw.tencentcs.com/?link=a0la4la4la8la7l55l38l38la4l96l37la7l97la9la3la9l37l92l95l38l94la8l89l38l49&hex=11&xor=6">CloudFlare Dashbord</a><br>选择 <code>Pages</code><br>选择<img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171138892.png#crop=0&crop=0&crop=1&crop=1&id=cERjd&originHeight=58&originWidth=124&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>存储库选择 Fork 的仓库<br>然后一直下一步,等到部署完成就可以访问了</p><h3 id="添加-DNS"><a href="#添加-DNS" class="headerlink" title="添加 DNS"></a>添加 DNS</h3><p>如果你不想要 ‘pages.dev’ 长地址,可以自定义域名<br>进入刚才部署好的项目的管理页面<br>选择自定义域<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171138465.png#crop=0&crop=0&crop=1&crop=1&id=oWzXr&originHeight=434&originWidth=937&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>添加你的域名<br>接着做好 CNAME 解析即可</p><h3 id="issues-配置"><a href="#issues-配置" class="headerlink" title="issues 配置"></a>issues 配置</h3><p>新建一个 GitHub 仓库<br>存放你的 issues 数据<br>创建好后进入 issues 选项<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171138152.png#crop=0&crop=0&crop=1&crop=1&id=Axdg3&originHeight=433&originWidth=937&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>选择 New issue<br>标题就写想要定向的网站<br>内容可以记录下 ID<br>创建好后 issues 的 id 就是重定向的钥匙<br>你创建了第一个 issues<br>你的重定向地址就是<br>域名/1<br>记录下仓库名备用</p><h3 id="请求配置"><a href="#请求配置" class="headerlink" title="请求配置"></a>请求配置</h3><p>进入 Fork 的仓库<br>编辑 404.html<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171139703.png#crop=0&crop=0&crop=1&crop=1&id=PAJmp&originHeight=98&originWidth=619&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>在此处把/repos/<strong>*</strong>/issues/的****改为你的用户名/仓库<br>然后提交<br>等待 CloudFlare 部署完成即可<br>ChenYFan 666<br>ChenYFan yyds<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171139358.gif#crop=0&crop=0&crop=1&crop=1&id=a2bhR&originHeight=108&originWidth=148&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""></p>]]></content>
<summary type="html"><p>本文章首发于<a href="https://www.yuque.com/ladjeek/ygg4q6">语雀</a>!<br>通过各种高科技功能同步到<a href="https://blog.slqwq.cn">Hajeekn 的博客</a><br>方便跳转,所以有了短</summary>
<category term="link" scheme="https://blog.slqwq.cn/categories/link/"/>
<category term="link" scheme="https://blog.slqwq.cn/tags/link/"/>
</entry>
<entry>
<title>Windows Subsystem for Android™ 安装教程</title>
<link href="https://blog.slqwq.cn/2021/posts/yoelghal/index.html"/>
<id>https://blog.slqwq.cn/2021/posts/yoelghal/index.html</id>
<published>2021-10-29T19:05:11.000Z</published>
<updated>2023-02-01T11:29:35.177Z</updated>
<content type="html"><![CDATA[<p>本文章首发于<a href="https://www.yuque.com/ladjeek/ygg4q6">语雀</a>!<br>通过各种高科技功能同步到<a href="https://blog.slqwq.cn">Hajeekn 的博客</a><br>微软的安卓子系统已经发布很久了,这篇文章教大家如何免美区免亚马逊安装 <strong>Windows Subsystem for Android™</strong></p><h1 id="获取并安装-Windows-Subsystem-for-Android™-包"><a href="#获取并安装-Windows-Subsystem-for-Android™-包" class="headerlink" title="获取并安装 Windows Subsystem for Android™ 包"></a>获取并安装 Windows Subsystem for Android™ 包</h1><p><a href="https://www.microsoft.com/en-us/p/windows-subsystem-for-android-with-amazon-appstore/9p3395vx91nr?activetab=pivot:overviewtab">https://www.microsoft.com/en-us/p/windows-subsystem-for-android-with-amazon-appstore/9p3395vx91nr?activetab=pivot:overviewtab</a><br>这是 Windows Subsystem for Android™ 的微软应用商店地址,但是显然是不能在国区安装的<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171126089.png#crop=0&crop=0&crop=1&crop=1&id=DE8LP&originHeight=1020&originWidth=1920&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>所以我们需要对它进行抓包<br><a href="https://store.rg-adguard.net/">https://store.rg-adguard.net/</a><br>进入这个网站<br>将商店地址填写进去<br>保证填写后的配置如下<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171127030.png#crop=0&crop=0&crop=1&crop=1&id=WLFHV&originHeight=435&originWidth=937&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>这边注意通道选择 <strong>Slow(Windows Insider Slow) </strong><br>配置好后点击旁边的”√”<br>稍等一会儿列表就出来了<br>出来之后划到最下方,找到 1.21GB 的包,点击它下载下来<br>下载可以使用多线程软件加快速度<br>下载好后你会得到一个 msixbundle<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171127520.png#crop=0&crop=0&crop=1&crop=1&id=JHdoS&originHeight=203&originWidth=131&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>这个包不能直接安装,直接安装会报错<br>我们需要使用 Powershell 安装<br><strong>用管理员打开 Powershell</strong><br>用这个指令安装</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">add-appxpackage</span> <span class="string">"文件地址"</span></span><br></pre></td></tr></table></figure><p>对于 Windows 11<br>你获取文件地址可以右键文件选择获取文件地址</p><p><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171127335.png#crop=0&crop=0&crop=1&crop=1&id=kE8Kt&originHeight=587&originWidth=1204&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>安装好后任务栏会出现 Windows Subsystem for Android™<br>这时已经安装完成了</p><h1 id="配置-Windows-Subsystem-for-Android™"><a href="#配置-Windows-Subsystem-for-Android™" class="headerlink" title="配置 Windows Subsystem for Android™"></a>配置 Windows Subsystem for Android™</h1><h2 id="配置-ADB"><a href="#配置-ADB" class="headerlink" title="配置 ADB"></a>配置 ADB</h2><p>打开 Windows Subsystem for Android™<br>将子系统资源调整为持续<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171127092.png#crop=0&crop=0&crop=1&crop=1&id=KquZl&originHeight=194&originWidth=1178&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>接着打开开发者模式<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171128036.png#crop=0&crop=0&crop=1&crop=1&id=LgLDB&originHeight=98&originWidth=1206&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>然后我们需要安装 ADB<br><a href="https://developer.android.google.cn/studio/releases/platform-tools">SDK Platorm Tools</a><br>进入后依照系统版本选择 ADB<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171129876.png#crop=0&crop=0&crop=1&crop=1&id=NdOYc&originHeight=434&originWidth=937&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>将下载好的 ADB 解压到一个你不会动到的地方<br>我放在了系统盘根目录<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171129765.png#crop=0&crop=0&crop=1&crop=1&id=FJSce&originHeight=806&originWidth=1362&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>接着打开高级系统设置<br>选择环境变量<br>在系统变量内新建一个变量叫做 “adb”<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171129310.png#crop=0&crop=0&crop=1&crop=1&id=qLPNl&originHeight=217&originWidth=839&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>变量值写你放 adb 的文件夹<br>比如我的是 C:\adb 这里就写 C:\adb<br>接着双击用户变量的 Path<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171129451.png#crop=0&crop=0&crop=1&crop=1&id=yto8B&originHeight=664&originWidth=677&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>在这里新建一个<br>值写 %adb%</p><h2 id="驱动安装"><a href="#驱动安装" class="headerlink" title="驱动安装"></a>驱动安装</h2><p>在极少数情况下,会出现与驱动有关的错误,这可能就是你没有安装 adb 驱动<br>资源 by: <a href="https://jamcz.com/">晨中网络科技</a><br>进入 <a href="https://cz-jam.lanzoui.com/iTbJrtpfa5e">https://cz-jam.lanzoui.com/iTbJrtpfa5e</a> (提取码 intr)<br>下载.7z 文件并解压<br>在里面根据系统型号选择程序<br>32 选择 x32<br>64 选择 x64<br>这时问题应该就解决了</p><h2 id="调整内存-非必须"><a href="#调整内存-非必须" class="headerlink" title="调整内存(非必须)"></a>调整内存(非必须)</h2><p>微软官方给的推荐要求是内存为 16GB<br>我的机带内存是 8GB<br>所以就要通过虚拟内存来增加了<br>进入高级系统设置<br>选择性能设置<br>进入高级选项卡,点击虚拟内存下的更改<br>将自动管理所有驱动器的分页文件大小取消<br>选择一个空间够的盘,选择自定义大小,根据需要调整<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171129975.png#crop=0&crop=0&crop=1&crop=1&id=ca0Zf&originHeight=694&originWidth=508&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>注意 GB 和 MB 之间的进率是 1024<br>1GB = 1024MB<br>1024GB = 1024*1024MB<br>调整完后别忘了点击设置<br>然后在点击确定</p><h1 id="使用-Windows-Subsystem-for-Android™"><a href="#使用-Windows-Subsystem-for-Android™" class="headerlink" title="使用 Windows Subsystem for Android™"></a>使用 Windows Subsystem for Android™</h1><h2 id="安装-APK"><a href="#安装-APK" class="headerlink" title="安装 APK"></a>安装 APK</h2><p>Windows Subsystem for Android™ 是支持安装第三方 APK 的,需要通过 ADB 来安装<br>在安装 APK 之前你需要点击”文件”<br>启动一次 Windows Subsystem for Android™<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171130047.png#crop=0&crop=0&crop=1&crop=1&id=OxIuv&originHeight=794&originWidth=1350&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt="">出现这个界面后就可以关闭窗口了<br>打开开发者模式后会出现一行小字<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171130483.png#crop=0&crop=0&crop=1&crop=1&id=uQanT&originHeight=20&originWidth=898&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>于是我们可以通过 127.0.0.1:58526 连接 Windows Subsystem for Android™<br>打开终端<br>输入指令:</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">adb connect <span class="number">127.0</span>.<span class="number">0.1</span>:<span class="number">58526</span></span><br></pre></td></tr></table></figure><p>其中地址要根据提示来改变<br>当出现 “connected to 127.0.0.1:58526” 提示时就说明已经连接到 Windows Subsystem for Android™ 了<br>我们可以安装一个[酷安]以便下次安装不用指令<br>安装 apk 使用这个指令:</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">adb install <span class="string">"文件地址"</span></span><br></pre></td></tr></table></figure>]]></content>
<summary type="html"><p>本文章首发于<a href="https://www.yuque.com/ladjeek/ygg4q6">语雀</a>!<br>通过各种高科技功能同步到<a href="https://blog.slqwq.cn">Hajeekn 的博客</a><br>微软的安卓子系统已经</summary>
<category term="Windows" scheme="https://blog.slqwq.cn/categories/Windows/"/>
<category term="Windows" scheme="https://blog.slqwq.cn/tags/Windows/"/>
</entry>
<entry>
<title>Windows 使用 Scoop 管理软件</title>
<link href="https://blog.slqwq.cn/2021/posts/kmlrip/index.html"/>
<id>https://blog.slqwq.cn/2021/posts/kmlrip/index.html</id>
<published>2021-08-22T14:08:23.000Z</published>
<updated>2023-02-01T11:29:35.177Z</updated>
<content type="html"><![CDATA[<p>本篇文章参考 <a href="https://www.dejavu.moe/posts/windows-scoop/">Dejavu</a> 的文章和 <a href="https://scoop-docs.vercel.app/">Scoop</a> 官方文档<br>Windows 和 MacOS Linux 不一样<br>Windows 安装软件的途径一般是搜索引擎/软件管家</p><p>而 MacOS Linux 有自己的包管理器<br>MacOS 是 Homebrew<br>Linux 是 apt<br>Windows 下其实也有包管理器,比较流行的是</p><ul><li><a href="https://scoop.sh/">Scoop</a></li><li><a href="https://chocolatey.org/">Chocolatey</a></li><li><a href="https://github.com/microsoft/winget-cli">Winget-cli</a></li></ul><p>Scoop 和 Chocolatey 都是比较出名的第三方包管理器了,Winget 是微软整的一个新活<br>但是严格来说,Scoop 并不算是 “包管理器”,Scoop 官方解释为 “Scoop 是 Windows 的命令行安装程序”,但是它基本实现了一个包管理器的功能</p><h1 id="系统要求"><a href="#系统要求" class="headerlink" title="系统要求"></a>系统要求</h1><ul><li>Windows 7 SP1+ / Windows Server 2008+</li><li><a href="https://aka.ms/wmf5download">PowerShell 5</a> / <a href="https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-windows?view=powershell-6">PowerShell Core</a> 和 <a href="https://www.microsoft.com/net/download">.NET Framework 4.5</a> (或更高版本)</li></ul><h1 id="配置-Scoop-目录"><a href="#配置-Scoop-目录" class="headerlink" title="配置 Scoop 目录"></a>配置 Scoop 目录</h1><p>Scoop 默认的安装本体和软件目录为:<code>C:\Users\%username%\scoop\</code><br>Scoop 默认安装全局软件的目录为: <code>C:\ProgramData\scoop\</code><br>在我们安装 Scoop 前,我们应该使用环境变量配置安装目录<br>配置本体和软件目录:</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="variable">$env</span>:SCOOP=<span class="string">'<盘符>:\Scoop'</span></span><br><span class="line">[Environment]::SetEnvironmentVariable(<span class="string">'SCOOP'</span>, <span class="variable">$env</span>:SCOOP, <span class="string">'User'</span>)</span><br></pre></td></tr></table></figure><p>配置全局软件目录:</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="variable">$env</span>:SCOOP_GLOBAL=<span class="string">'<盘符>:\Scoop\Global'</span></span><br><span class="line">[Environment]::SetEnvironmentVariable(<span class="string">'SCOOP_GLOBAL'</span>, <span class="variable">$env</span>:SCOOP_GLOBAL, <span class="string">'Machine'</span>)</span><br></pre></td></tr></table></figure><p>配置完成后就可以开始安装 Scoop 了</p><h1 id="安装-Scoop"><a href="#安装-Scoop" class="headerlink" title="安装 Scoop"></a>安装 Scoop</h1><p>打开你的 Windows Terminal / Powershell 5<br>输入安装指令:</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">iwr -useb get.scoop.sh | iex</span><br></pre></td></tr></table></figure><p>安装时鉴于国内防火长城,推荐打开全局代理<br>当提示 successfully 的时候就安装完成了</p><h1 id="安装-Git"><a href="#安装-Git" class="headerlink" title="安装 Git"></a>安装 Git</h1><p>Git 是 Scoop 必须的组件,现在你可以通过一个简单指令安装</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">scoop install git openssh</span><br></pre></td></tr></table></figure><h1 id="安装-Aria2"><a href="#安装-Aria2" class="headerlink" title="安装 Aria2"></a>安装 Aria2</h1><p>接着我们需要安装 Aria2 让 Scoop 以多线程下载<br>你也可以通过一个简单的指令下载</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">scoop install aria2</span><br></pre></td></tr></table></figure><p>安装完成后需要配置一下 Aria2 的参数</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 启用 Aria2</span></span><br><span class="line">scoop config aria2-enabled <span class="literal">true</span></span><br><span class="line"><span class="comment"># 设置单任务最大线程为 16</span></span><br><span class="line">scoop config aria2-split 16</span><br><span class="line"><span class="comment"># 设置单服务器最大线程为 16</span></span><br><span class="line">scoop config aria2-max-connection-per-server 16</span><br><span class="line"><span class="comment"># 设置文件最小切片大小为 1M</span></span><br><span class="line">scoop config aria2-min-split-size 1M</span><br></pre></td></tr></table></figure><h1 id="安装-Sudo"><a href="#安装-Sudo" class="headerlink" title="安装 Sudo"></a>安装 Sudo</h1><p>如果你使用 Scoop 全局安装软件(如 Node.js)你便需要管理员权限<br>安装 Sudo 可以简化提取权限步骤<br>同样,你也可以通过一个简单指令安装 Sudo</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">scoop install sudo</span><br></pre></td></tr></table></figure><h1 id="常用-Scoop-Bucket"><a href="#常用-Scoop-Bucket" class="headerlink" title="常用 Scoop Bucket"></a>常用 Scoop Bucket</h1><div class="table-container"><table><thead><tr><th><a href="https://github.com/lukesampson/scoop">Main</a></th><th>Windows 的命令行安装程序</th></tr></thead><tbody><tr><td><a href="https://github.com/lukesampson/scoop-extras">extras</a></td><td>包含不太符合主存储桶标准的应用</td></tr><tr><td><a href="https://github.com/ScoopInstaller/Main">main</a></td><td>下一代的 Scoop 默认 Bucket</td></tr><tr><td><a href="https://github.com/chawyehsu/dorado">chawyehsu/dorado</a></td><td>🐟 又是一个可爱的 Scoop 的 Bucket</td></tr><tr><td><a href="https://github.com/Ash258/Scoop-Ash258">Ash258/Scoop-Ash258</a></td><td>个人 Bucket,包含各种应用</td></tr><tr><td><a href="https://github.com/matthewjberger/scoop-nerd-fonts">nerd-fonts</a></td><td>一个用于安装 Nerd Fonts 字体的 Bucket</td></tr><tr><td><a href="https://github.com/ScoopInstaller/Java">java</a></td><td>用于 Oracle Java, OpenJDK, Zulu, ojdkbuild, AdoptOpenJDK, Amazon Corretto, BellSoft Liberica, SapMachine 和 Microsoft JDK 的 Bucket</td></tr><tr><td><a href="https://github.com/borger/scoop-galaxy-integrations">borger/scoop-galaxy-integrations</a></td><td>提供安装、附加和更新 GOG Galaxy 2 号集成的简单方法</td></tr><tr><td><a href="https://github.com/TheRandomLabs/Scoop-Spotify">TheRandomLabs/Scoop-Spotify</a></td><td>一个用于 Spotify、Spicetify 和相关软件包的 Bucket</td></tr><tr><td><a href="https://github.com/TheRandomLabs/scoop-nonportable">nonportable</a></td><td>一个用于非可移植应用程序的 Bucket</td></tr><tr><td><a href="https://github.com/Calinou/scoop-games">games</a></td><td>开源/免费游戏和游戏相关工具的 Bucket</td></tr><tr><td><a href="https://github.com/TheCjw/scoop-retools">TheCjw/scoop-retools</a></td><td>逆向工程工具的 Bucket</td></tr><tr><td><a href="https://github.com/Ash258/Scoop-JetBrains">jetbrains</a></td><td>包含 Jetbrians IDE 的 Bucket</td></tr><tr><td><a href="https://github.com/integzz/scoopet">integzz/scoopet</a></td><td>包含学术研究应用的 Bucket</td></tr><tr><td><a href="https://github.com/ScoopInstaller/Versions">Versions</a></td><td>包含一些知名软件包的旧版本的 Bucket</td></tr><tr><td><a href="https://github.com/Ash258/GenericBucket">Ash258/GenericBucket</a></td><td>通用的 Bucket 模板</td></tr><tr><td><a href="https://github.com/kidonng/sushi">kidonng/sushi</a></td><td>一个美味的、包容的 Bucket</td></tr><tr><td><a href="https://github.com/rasa/scoops">rasa/scoops</a></td><td>一个美味的的 Bucket</td></tr><tr><td><a href="https://github.com/littleli/scoop-clojure">littleli/scoop-clojure</a></td><td>安装 Clojure 的 Bucket</td></tr><tr><td><a href="https://github.com/MCOfficer/scoop-nirsoft">MCOfficer/scoop-nirsoft</a></td><td>个人收藏的 nirsoft.net-bucket,总共包含了 250 多个程序</td></tr><tr><td><a href="https://github.com/kkzzhizhou/scoop-apps">kkzzhizhou/coop-apps</a></td><td>合并多个 Scoop 仓库,使用 Github Action 自动更新</td></tr><tr><td><a href="https://github.com/KNOXDEV/wsl">KNOXDEV/wsl</a></td><td>一个用于 WSL 的 Bucket,不需要 Windows UWP 应用商店</td></tr><tr><td><a href="https://github.com/Ash258/Scoop-Sysinternals">Ash258/Scoop-Sysinternals</a></td><td>所有分开的 Sysinternals 工具的 Bucket</td></tr><tr><td><a href="https://github.com/TheRandomLabs/Scoop-Bucket">TheRandomLabs/Scoop-Bucket</a></td><td>个人收藏的 Bucket</td></tr><tr><td><a href="https://github.com/cderv/r-bucket">cderv/r-bucket</a></td><td>R 语言用户和软件工程师使用的个人 Bucket</td></tr><tr><td><a href="https://github.com/kkzzhizhou/scoop-zapps">kkzzhizhou/scoop-zapps</a></td><td>自用 Scoop 仓库,使用 Github Actions 自动更新</td></tr><tr><td><a href="https://github.com/tetradice/scoop-iyokan-jp">tetradice/scoop-iyokan-jp</a></td><td>日本語環境に最適化された scoop bucket</td></tr><tr><td><a href="https://github.com/rkbk60/scoop-for-jp">rkbk60/scoop-for-jp</a></td><td>适合小日子过得不错的日本人的 Bucket</td></tr><tr><td><a href="https://github.com/ZvonimirSun/scoop-iszy">ZvonimirSun/scoop-iszy</a></td><td>ZvonimirSun 个人收藏的 Bucket</td></tr><tr><td><a href="https://github.com/ScoopInstaller/PHP">php</a></td><td>PHP 的 Bucket</td></tr></tbody></table></div><p>你可以通过以下指令添加 Bucket</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">scoop bucket add <name> <repo></span><br></pre></td></tr></table></figure>]]></content>
<summary type="html"><p>本篇文章参考 <a href="https://www.dejavu.moe/posts/windows-scoop/">Dejavu</a> 的文章和 <a href="https://scoop-docs.vercel.app/">Scoop</a> 官方文档<br>W</summary>
<category term="windows" scheme="https://blog.slqwq.cn/categories/windows/"/>
<category term="windows" scheme="https://blog.slqwq.cn/tags/windows/"/>
</entry>
<entry>
<title>Cloudflare 的 Argo Tunnel 使用</title>
<link href="https://blog.slqwq.cn/2021/posts/fktz6u/index.html"/>
<id>https://blog.slqwq.cn/2021/posts/fktz6u/index.html</id>
<published>2021-08-06T18:38:20.000Z</published>
<updated>2023-02-01T11:29:35.177Z</updated>
<content type="html"><![CDATA[<p>Cloudflare 是一个知名的老牌 CDN 厂商了,相信很多人应该都知道,今天我在逛 Cloudflare の Docs 时发现了个 Argo Tunnel 试用了一下,还可以,并且免费,于是<del>水</del>写了一篇文章介绍给大家</p><h1 id="安装-Argo-Tunnel"><a href="#安装-Argo-Tunnel" class="headerlink" title="安装 Argo Tunnel"></a>安装 Argo Tunnel</h1><p>本次以 Windows 11 演示<br>通过<a href="https://github.com/cloudflare/cloudflared/releases">GitHub</a>下载适用于 Windows 的安装包<br>这里包含了两种版本<br>386=i1386 也就是 32 位的 Windows 系统<br>amd64 也就是 64 位的 Windows 系统<br>我们下载.exe 可执行文件,msi 属于安装文件,也可以下载(但是我这里没安装成功)</p><h1 id="配置-Argo-Tunnel"><a href="#配置-Argo-Tunnel" class="headerlink" title="配置 Argo Tunnel"></a>配置 Argo Tunnel</h1><p>下载好后把文件改名为 cloudflared.exe<br>然后把他复制到一个合适的目录,我这里是 D 盘<br>打开 Windows Terminal ,如果你没有也可以用 Powershell 和 cmd<br>通过 cd 进入到放置 cloudflared.exe 的文件夹<br>如果你是 Windows 11 系统,可以直接在目录右键,点击 Open in Windows Terminal<br>然后在终端输入</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">./cloudflared.exe --version</span><br></pre></td></tr></table></figure><p>如果跳出版本号就成功了<br>接着你需要打开<a href="https://dash.cloudflare.com/argotunnel">Cloudflare Argo Tunnel 的授权页面</a><br>在里面点击你要授权 Argo Tunnel 的域名<br>接着会弹出来一个弹窗<img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171116532.png#crop=0&crop=0&crop=1&crop=1&id=y8s2F&originHeight=219&originWidth=1050&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>提示你点击授权,照着文字点就行<br>然后你的浏览器会自动下载一个叫 cert.pem 的文件<br>复制它<br>然后进入到你的用户文件夹,创建一个.cloudflared 文件夹<br>将文件粘贴进去<br>这样就完成了对 Argo Tunnel 的配置</p><h1 id="创建-Argo-隧道"><a href="#创建-Argo-隧道" class="headerlink" title="创建 Argo 隧道"></a>创建 Argo 隧道</h1><p>打开终端,输入以下指令</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">./cloudflared.exe tunnel create <你想要的隧道名称></span><br></pre></td></tr></table></figure><p>创建一个隧道<br>然后你需要配置域名方面<br>打开 Cloudflare 的 DNS 面板,如果你是第三方托管打开第三方 DNS 面板<br>新建一个 CNAME 记录<br>记录名随便<br>记录类型选择 CNAME<br>记录内容写 你刚才从终端创建隧道时的 ID.cfargotunnel.com<br>ID 怎么获取呢?<br>你创建隧道时的 xxxxx.json 去掉.json 就是你的隧道 ID<br>然后保存<br>如果你是第三方托管,你还要去你的域名管理商新建一样的记录,但是 CNAME 值写<记录名.域名.cdn.cloudflare.net><br>之后你就可以连接 Argo 隧道了</p><h1 id="连接-Argo-隧道"><a href="#连接-Argo-隧道" class="headerlink" title="连接 Argo 隧道"></a>连接 Argo 隧道</h1><p>在终端里面输入以下指令</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">./cloudflared tunnel --config path/config.yaml run <刚刚的隧道名> --url <本地URL(可以带端口)></span><br></pre></td></tr></table></figure><p>其中你要填写隧道名和本地 URL<br>比如你想让 Argo 映射你的 Hexo,你就可以在本地先启动 Hexo 查看他的地址<br>Hexo 一般是 localhost:4000<br>其他项目就填进去就好了,记住不带 http 和 https 的协议头,也不带后缀 /<br>填写完成后回车,等它连接好<br>然后你打开你刚才创建的子域名,就会出现页面了<br><del>今天又水了一篇文章</del><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171116141.png#crop=0&crop=0&crop=1&crop=1&id=OXws5&originHeight=43&originWidth=42&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""></p>]]></content>
<summary type="html">白嫖一个免费的内网穿透(bushi</summary>
<category term="cloudflare" scheme="https://blog.slqwq.cn/categories/cloudflare/"/>
<category term="cloudflare" scheme="https://blog.slqwq.cn/tags/cloudflare/"/>
</entry>
<entry>
<title>物理机安装 Windows 11</title>
<link href="https://blog.slqwq.cn/2021/posts/alioalnh/index.html"/>
<id>https://blog.slqwq.cn/2021/posts/alioalnh/index.html</id>
<published>2021-07-10T20:55:32.000Z</published>
<updated>2023-02-01T11:29:35.177Z</updated>
<content type="html"><![CDATA[<p>最近 Windows 11 发布了,我趁机白嫖了个预览版镜像在虚拟机里面装着玩玩,之后便给实体机也装上了<br>本文章说说如何安装 Windows 11 和对于笔记本如何优化动效</p><h1 id="安装-Windows-11"><a href="#安装-Windows-11" class="headerlink" title="安装 Windows 11"></a>安装 Windows 11</h1><h2 id="获取-Windows-11-预览版镜像"><a href="#获取-Windows-11-预览版镜像" class="headerlink" title="获取 Windows 11 预览版镜像"></a>获取 Windows 11 预览版镜像</h2><p>天翼云:<a href="https://cloud.189.cn/t/bYbEzq7vAVra">https://cloud.189.cn/t/bYbEzq7vAVra</a> 访问码:q2rt<br>迅雷:<a href="https://pan.xunlei.com/s/VMdJtc5D8h_Yau9M19fH6mNiA1">https://pan.xunlei.com/s/VMdJtc5D8h_Yau9M19fH6mNiA1</a> 提取码:p5f9<br>UUP(arm64_zh cn):<a href="https://pan.baidu.com/s/129jQDRLGqn2dMq7tEifRFg">https://pan.baidu.com/s/129jQDRLGqn2dMq7tEifRFg</a> 提取码: uyq8<br>UUP(amd64_zh cn):<a href="https://pan.baidu.com/s/14x2a2VhopRAS3ZOYhkBQBA">https://pan.baidu.com/s/14x2a2VhopRAS3ZOYhkBQBA</a> 提取码:8wy5<br>通过这些地址获取预览版镜像</p><h2 id="安装-Windows-11-1"><a href="#安装-Windows-11-1" class="headerlink" title="安装 Windows 11"></a>安装 Windows 11</h2><p>下载之后解压镜像<br>双击运行 setup.exe 进行安装<br>如果你的电脑不满足 Windows 11 的要求,你可以使用 PE 安装<br>如果你下载了一个自带中文语言包的镜像,那么你看到的就是中文的安装界面<br>按照步骤安装完成后应该会跳出 OOBE 界面<br>在这个界面选择 China<br>然后点击 Yes<br>然后会提示选择键盘布局</p><p>如果你下载了包含中文包的镜像那么这里可以选择中文输入法<br>之后你要配置账户,我用的是 Microsoft 365 E5 的组织账号<br>之后按照步骤提示配置完成后就可以了<br>安装完成后界面大概是这样<br><img src="https://i0.hdslb.com/bfs/album/e926423660bfaba784785381224e01d71f3b19d9.png" alt="image-20221228200653559"></p>]]></content>
<summary type="html">最近Windows 11发布了,我趁机白嫖了个预览版镜像在虚拟机里面装着玩玩,之后便给实体机也装上了</summary>
<category term="Windows" scheme="https://blog.slqwq.cn/categories/Windows/"/>
<category term="Windows11" scheme="https://blog.slqwq.cn/categories/Windows/Windows11/"/>
<category term="Windows" scheme="https://blog.slqwq.cn/tags/Windows/"/>
<category term="Windows11" scheme="https://blog.slqwq.cn/tags/Windows11/"/>
</entry>
<entry>
<title>Floccus 食用教程</title>
<link href="https://blog.slqwq.cn/2021/posts/eur9h5la/index.html"/>
<id>https://blog.slqwq.cn/2021/posts/eur9h5la/index.html</id>
<published>2021-04-18T10:49:42.000Z</published>
<updated>2023-02-01T11:29:35.177Z</updated>
<content type="html"><![CDATA[<blockquote><p>演示过程基于 Twinkstar(星愿)浏览器,其他浏览器可能大致步骤一样</p></blockquote><h1 id="什么是-Floccus"><a href="#什么是-Floccus" class="headerlink" title="什么是 Floccus"></a>什么是 Floccus</h1><p>Floccus 是一个在 GitHub 上的开源项目,该项目的官方简介如下</p><blockquote><p>Sync your bookmarks across browsers via Nextcloud, WebDAV or a local file (and thus any file sync solution).<br>简单的说它就是一个支持 Google Chrome 和 Mozilla Firefox 跨平台同步的一个插件,依赖于 WebDAV、nextcloud、本地文件等</p></blockquote><h1 id="下载并安装-Floccus-插件"><a href="#下载并安装-Floccus-插件" class="headerlink" title="下载并安装 Floccus 插件"></a>下载并安装 Floccus 插件</h1><p><a href="https://chrome.google.com/webstore/detail/floccus/fnaicdffflnofjppbagibeoednhnbjhg">Chrome Store Download</a><br><a href="https://github.com/marcelklehr/floccus/releases/">GitHub Release 下载</a></p><h1 id="配置坚果云"><a href="#配置坚果云" class="headerlink" title="配置坚果云"></a>配置坚果云</h1><p>坚果云支持 WebDAV,并且在国内,速度快,所以我们就选用了<a href="https://jianguoyun.com/">坚果云</a><br>如果你有账号点击登录<br>如果你没有账号点击注册<br>我有账号就直接登录了<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171111947.png#crop=0&crop=0&crop=1&crop=1&id=KZgFg&originHeight=867&originWidth=1920&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>进入后可以看见这些东西<br>sync 刚开始是没有的<br>接下来我们可以创建一个文件夹用于存放书签文件<br>这边命名为 sync,你也更改<br>在坚果云刚刚创建的文件夹中创建一个名为 bookmarks.xbel 的文件,文件内放入这些内容:</p><figure class="highlight xml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta"><?xml version=<span class="string">"1.0"</span> encoding=<span class="string">"UTF-8"</span>?></span></span><br><span class="line"><span class="meta"><!DOCTYPE <span class="keyword">xbel</span> <span class="keyword">PUBLIC</span> <span class="string">"+//IDN python.org//DTD XML Bookmark Exchange Language 1.0//EN//XML"</span> <span class="string">"http://pyxml.sourceforge.net/topics/dtds/xbel.dtd"</span>></span></span><br><span class="line"><span class="tag"><<span class="name">xbel</span> <span class="attr">version</span>=<span class="string">"1.0"</span>></span></span><br><span class="line"><span class="tag"></<span class="name">xbel</span>></span></span><br><span class="line"></span><br></pre></td></tr></table></figure><p>然后保存就可以了<br>接下来进入账号信息<br>安全选项<br>点击添加第三方应用<br>点击生成密码</p><h1 id="配置-Floccus-插件"><a href="#配置-Floccus-插件" class="headerlink" title="配置 Floccus 插件"></a>配置 Floccus 插件</h1><p>打开 Floocus 选择新建账户<br>WEBDAV URL 写: <a href="https://dav.jianguoyun.com/dav/">https://dav.jianguoyun.com/dav/</a><br>用户名写示例里面的<br>密码写你的用户密码<br>书签路径写自己新建的文件夹/bookmarks.xbel<br>接下来点击保存即可</p>]]></content>
<summary type="html">书签还在傻傻的导入导出?快来试试 Floccus</summary>
<category term="书签同步" scheme="https://blog.slqwq.cn/categories/%E4%B9%A6%E7%AD%BE%E5%90%8C%E6%AD%A5/"/>
<category term="书签同步" scheme="https://blog.slqwq.cn/tags/%E4%B9%A6%E7%AD%BE%E5%90%8C%E6%AD%A5/"/>
</entry>
<entry>
<title>如何给自己的网站添加音乐播放器</title>
<link href="https://blog.slqwq.cn/2021/posts/adlloiau/index.html"/>
<id>https://blog.slqwq.cn/2021/posts/adlloiau/index.html</id>
<published>2021-02-24T11:00:47.000Z</published>
<updated>2023-02-01T11:29:35.177Z</updated>
<content type="html"><![CDATA[<p>本文章首发于<a href="https://www.yuque.com/ladjeek/ygg4q6">语雀</a>!<br>通过各种高科技功能同步到<a href="https://blog.slqwq.cn">Hajeekn 的博客</a></p><hr><p>本文章为以前文章的重制版本,会详细说明</p><h1 id="开始前言"><a href="#开始前言" class="headerlink" title="开始前言"></a>开始前言</h1><p>首先,这篇文章所写的教程适用于大部分主题和网站<br>本篇文章会提供 HTML/YML 引用方法,可以将 HTML 引用方法转换成你主题所提供的自定义 head 方法</p><h1 id="开始"><a href="#开始" class="headerlink" title="开始"></a>开始</h1><p>首先打开你的 Butterfly 配置文件<br>一般为以下几个名称</p><ul><li>_config.butterfly.yml(存在于根目录下)</li><li>butterfly.yml(存在于 source/_data 目录下)</li><li>_config.yml(存在于主题目录下)</li></ul><p>找到 inject<br>在 head 部分粘贴以下内容</p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="bullet">-</span> <span class="string"><link</span> <span class="string">rel="stylesheet"</span> <span class="string">href="https://cdn1.tianli0.top/npm/aplayer/dist/APlayer.min.css"</span> <span class="string">media="defer"</span> <span class="string">onload="this.media='all'"></span></span><br><span class="line"><span class="bullet">-</span> <span class="string"><meting-js</span> <span class="string">server='tencent'</span> <span class="string">type='playlist'</span> <span class="string">id='3813658180'</span> <span class="string">fixed='true'></meting-js></span></span><br></pre></td></tr></table></figure><p>在 bottom 部分粘贴以下内容</p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="bullet">-</span> <span class="string"><script</span> <span class="string">async</span> <span class="string">src="https://cdn1.tianli0.top/npm/aplayer"></script></span></span><br><span class="line"><span class="bullet">-</span> <span class="string"><script</span> <span class="string">async</span> <span class="string">src="https://cdn1.tianli0.top/npm/meting/dist/Meting.min.js"></script></span></span><br></pre></td></tr></table></figure><p>HTML 引入方法:<br>在 head 添加</p><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag"><<span class="name">link</span></span></span><br><span class="line"><span class="tag"> <span class="attr">rel</span>=<span class="string">"stylesheet"</span></span></span><br><span class="line"><span class="tag"> <span class="attr">href</span>=<span class="string">"https://cdn1.tianli0.top/npm/aplayer/dist/APlayer.min.css"</span></span></span><br><span class="line"><span class="tag"> <span class="attr">media</span>=<span class="string">"defer"</span></span></span><br><span class="line"><span class="tag"> <span class="attr">onload</span>=<span class="string">"this.media='all'"</span></span></span><br><span class="line"><span class="tag">/></span></span><br><span class="line"><span class="tag"><<span class="name">meting-js</span></span></span><br><span class="line"><span class="tag"> <span class="attr">server</span>=<span class="string">"tencent"</span></span></span><br><span class="line"><span class="tag"> <span class="attr">type</span>=<span class="string">"playlist"</span></span></span><br><span class="line"><span class="tag"> <span class="attr">id</span>=<span class="string">"3813658180"</span></span></span><br><span class="line"><span class="tag"> <span class="attr">fixed</span>=<span class="string">"true"</span></span></span><br><span class="line"><span class="tag">></span><span class="tag"></<span class="name">meting-js</span>></span></span><br></pre></td></tr></table></figure><p>在/body 前添加</p><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag"><<span class="name">script</span> <span class="attr">async</span> <span class="attr">src</span>=<span class="string">"https://cdn1.tianli0.top/npm/aplayer"</span>></span><span class="tag"></<span class="name">script</span>></span></span><br><span class="line"><span class="tag"><<span class="name">script</span></span></span><br><span class="line"><span class="tag"> <span class="attr">async</span></span></span><br><span class="line"><span class="tag"> <span class="attr">src</span>=<span class="string">"https://cdn1.tianli0.top/npm/meting/dist/Meting.min.js"</span></span></span><br><span class="line"><span class="tag">></span><span class="tag"></<span class="name">script</span>></span></span><br></pre></td></tr></table></figure><p>其中<code>server='tencent' type='playlist' id='3813658180' fixed='true'</code>可以自定义<br>自定义方法可参照 MetingJS 官方 README<br><a href="https://github.com/metowolf/MetingJS/blob/master/README.md">https://github.com/metowolf/MetingJS/blob/master/README.md</a><br>水完了,溜了溜了</p><h2 id="说明"><a href="#说明" class="headerlink" title="说明"></a>说明</h2><p>如果你要达到本博客的刷新不断歌(除主动刷新或刷新 JavaScript 脚本)<br>需要开启 Pjax 功能</p>]]></content>
<summary type="html">添加一个音乐播放器 in your website</summary>
<category term="Butterfly" scheme="https://blog.slqwq.cn/categories/Butterfly/"/>
<category term="Custom" scheme="https://blog.slqwq.cn/categories/Butterfly/Custom/"/>
<category term="Butterfly" scheme="https://blog.slqwq.cn/tags/Butterfly/"/>
<category term="Custom" scheme="https://blog.slqwq.cn/tags/Custom/"/>
</entry>
<entry>
<title>Waline评论系统部署日志</title>
<link href="https://blog.slqwq.cn/2021/posts/rbblakpo/index.html"/>
<id>https://blog.slqwq.cn/2021/posts/rbblakpo/index.html</id>
<published>2021-02-21T19:46:58.000Z</published>
<updated>2023-02-01T11:29:35.177Z</updated>
<content type="html"><![CDATA[<p><strong>本文基于</strong><a href="https://blog.ccknbc.cc/posts/waline-commens-system-deployment-logs/">@CCKNBC</a><strong>的日志</strong><a href="https://waline.js.org/">@Waline 官方文档</a>和博主自己部署时的实际情况编写<br>如果需要最详细的配置请前往 <a href="https://waline.js.org/">@Waline 官方文档</a></p><hr><h1 id="评论系统特性"><a href="#评论系统特性" class="headerlink" title="评论系统特性"></a>评论系统特性</h1><ul><li>快速</li><li><strong>真</strong>·安全</li><li>Markdown 语法支持</li><li>轻量易用</li><li>免费部署</li><li>多种部署方式和存储服务支持,每列选择一项多达 48 种部署方式任君选择</li></ul><div class="table-container"><table><thead><tr><th></th><th>Waline</th><th></th></tr></thead><tbody><tr><td><strong>客户端脚本</strong></td><td><strong>服务端部署</strong></td><td><strong>数据存储</strong></td></tr><tr><td>@waline/client</td><td>Vercel</td><td>LeanCloud</td></tr><tr><td>MiniValine</td><td>CloudBase</td><td>CloudBase</td></tr><tr><td></td><td>Docker</td><td>MongoDB</td></tr><tr><td></td><td>独立部署</td><td>MySQL</td></tr><tr><td></td><td></td><td>SQLite</td></tr><tr><td></td><td></td><td>PostgreSQL</td></tr><tr><td></td><td></td><td>Github</td></tr></tbody></table></div><h2 id="Todo"><a href="#Todo" class="headerlink" title="Todo"></a>Todo</h2><ul><li>[x] 微信通知</li><li>[x] QQ 通知</li><li>[x] Telegram 通知</li><li>[x] Akismet</li><li>[x] 文章统计</li><li>[x] 多语言同步</li><li>[x] 自定义语言支持</li><li>[x] 登录支持</li><li>[x] 评论管理</li><li>[x] 评论删除</li><li>[x] 其它数据库支持</li><li>[x] 基于 IP 的发布评论频率限制</li><li>[x] 基于关键词的评论过滤限制</li><li>[x] IP 黑名单</li><li>[x] 重复内容检测</li><li>[x] CloudBase 腾讯云开发部署支持</li><li>[x] 社交登录</li><li>[ ] AWS, GCP, Azure 部署支持</li><li>[ ] 置顶评论</li><li>[ ] 评论赞踩</li></ul><p>如果您要获得来自 Waline 群友或公子大佬的支持,可以在<a href="https://github.com/lizheming/waline/discussions">Github Discussions</a> 中发布问题获取支持。当然你也可以加入 Waline 的 <a href="https://t.me/walinejs">Telegram</a> 小组或者是加入我们的 <a href="https://qm.qq.com/cgi-bin/qm/qr?k=rPZvq_EBfwQa6QZX7sToVlhH49c6ed0R&jump_from=webapi">Waline 用户交流 QQ 群</a>获取更多的支持。</p><h1 id="上手"><a href="#上手" class="headerlink" title="上手"></a>上手</h1><p>博主采用 Butterfly 主题,已经内置 Waline 评论系统</p><h2 id="Vercel-LeanCloud"><a href="#Vercel-LeanCloud" class="headerlink" title="Vercel + LeanCloud"></a>Vercel + LeanCloud</h2><p><strong>博主就使用了这种方式</strong><del>(毕竟能白嫖谁还要花钱啊?</del><br>博主推荐使用<a href="https://leancloud.app">LeanCloud 国际版本</a>,如果您使用的是<a href="https://leancloud.cn">LeanCloud 中国版本</a>,除了本文介绍的环境变量,还需要绑定 LeanCloud 域名<br>配置方式: 设置 > 域名绑定 > API 访问域名 绑定新域名 > 输入需要绑定的已备案域名点击 确定。之后按照页面上的提示去 DNS 上做正确的 CNAME 解析即可。<br><a href="https://vercel.com/import/project?template=https://github.com/lizheming/waline/tree/master/example"> </a><img src="https://cdn.nlark.com/yuque/0/2021/svg/12488964/1613908946082-2b97a876-6dcf-437c-8b06-d1be78602a82.svg#crop=0&crop=0&crop=1&crop=1&height=32&id=SkrZu&originHeight=32&originWidth=92&originalType=binary&ratio=1&rotation=0&showTitle=false&size=0&status=done&style=none&title=&width=92" alt=""><br>点击上面的 Deploy 按钮就可以快速跳转到 Vercel 部署辣<br>如果你没有 Vercel 账号,可能提示你需要注册一个,这里不要用 QQ 邮箱因为他们会认为 QQ 邮箱是一个垃圾邮箱<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171106702.png#crop=0&crop=0&crop=1&crop=1&id=nd4Cj&originHeight=875&originWidth=1896&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>PROJECT NAME 可以随便填写一个<br>这就是项目名称,不过为了之后好辩别,还是写一个方便记住的吧<br>输入了你的项目名称后点击 Continue 进入下一步<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171107459.png#crop=0&crop=0&crop=1&crop=1&id=GLi6Z&originHeight=874&originWidth=1898&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>不过可能会提示你要选择一个<br>随便来一个就是(前提是你有对应的账号,否则老老实实选择 GitHub<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171107509.png#crop=0&crop=0&crop=1&crop=1&id=uKJnF&originHeight=429&originWidth=937&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>进入下一步后会让你填写创建的 Git 仓库名称<br>点击你的用户名可以显示出你账号绑定的 GitHub 账号<br>这样就可以自定义创建的账号</p><p>下方 👇 的 Create private Git Repository 如果勾选上创建的时候就会创建一个私有仓库<br>然后再次点击 Continue 进行下一步<br>然后就会出现这个页面<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171107245.png#crop=0&crop=0&crop=1&crop=1&id=ARA2n&originHeight=863&originWidth=1895&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>不管他,下滑<br>找到 <code>Environment Variables</code> 配置环境变量<br>默认需要的环境变量如下:</p><ul><li>LEAN_ID</li><li>LEAN_KEY</li><li>LEAN_MASTER_KEY</li></ul><p>它们的值分别对应上一步在 <code>LeanCloud</code> 中获得的 <code>APPID</code> <code>APPKEY</code> <code>MasterKey</code><br>获取方法:<br>进入 LeanCloud<br>这边用国际版演示<br>进入选择 <a href="https://console.leancloud.app/">Console</a><br>如果没有创建一个应用<br><strong>注意 ⚠: 如果您之前用了 Valine 评论系统 就不用创建了,因为 Waline 评论数据与 Valine 评论数据可以共用</strong><br>进入应用设置后选择 设置 -> 应用 Keys<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171107450.png#crop=0&crop=0&crop=1&crop=1&id=N57mx&originHeight=512&originWidth=915&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>复制并保存 Credentials 的所有配置<br>然后把获取到的变量依次填入环境变量中<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171108331.png#crop=0&crop=0&crop=1&crop=1&id=JpTSM&originHeight=376&originWidth=948&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>设置都完成后就可以点击 <code>Deploy</code> 了<br>在这里稍等一会儿就可以部署完成<br>部署完成后在接下来的页面点击 Visit<br>就可以打开部署好的示例网页<br>然后你需要注册一个账号<br>在 <code>Vercel</code> 分配的域名后面加上/ui/register<br>第一个注册的会成为管理员哦~<br>如果你想要自定义管理员头衔<br>可以在客户端脚本中用<code>langMode.admin</code>配置哦<br>例如:</p><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">function</span> <span class="title function_">waline</span>(<span class="params"></span>) {</span><br><span class="line"> <span class="keyword">const</span> <span class="title class_">Waline</span> = <span class="built_in">require</span>(<span class="string">"@waline/client"</span>);</span><br><span class="line"> <span class="keyword">new</span> <span class="title class_">Waline</span>({</span><br><span class="line"> <span class="attr">el</span>: <span class="string">"#waline-comment"</span>,</span><br><span class="line"> <span class="attr">serverURL</span>: %<span class="variable constant_">WALINEURL</span>%,</span><br><span class="line"> <span class="attr">path</span>: <span class="variable language_">window</span>.<span class="property">location</span>.<span class="property">pathname</span>,</span><br><span class="line"> <span class="attr">visitor</span>: <span class="literal">true</span>,</span><br><span class="line"> <span class="attr">lang</span>: location.<span class="property">pathname</span>.<span class="title function_">startsWith</span>(<span class="string">"/en/"</span>) ? <span class="string">"en"</span> : <span class="string">"zh-CN"</span>,</span><br><span class="line"> <span class="attr">langMode</span>: {</span><br><span class="line"> <span class="attr">admin</span>: location.<span class="property">pathname</span>.<span class="title function_">startsWith</span>(<span class="string">"/en/"</span>) ? <span class="string">"Admin"</span> : <span class="string">"Hajeekn"</span>,</span><br><span class="line"> },</span><br><span class="line"> });</span><br><span class="line">}</span><br></pre></td></tr></table></figure><p>按这样来说,你还可以配置访客的角标(头衔)<br>具体去看看<a href="https://waline.js.org/">Waline 文档</a>或者<a href="https://blog.ccknbc.cc/">@CCKNBC</a><br>当然如果你和我一样用的是 Butterfly<br>那么可以找到 Waline 配置项<br>在<code>option</code>配置项加入配置即可</p><pre><code>langMode: admin: Hajeekn</code></pre><p>示例:</p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">option:</span></span><br><span class="line"> <span class="attr">pageSize:</span> <span class="number">10</span></span><br><span class="line"> <span class="string">·····</span></span><br><span class="line"> <span class="attr">langMode:</span></span><br><span class="line"> <span class="attr">admin:</span> <span class="string">Hajeekn</span></span><br></pre></td></tr></table></figure><p>当然 Waline 现在也可以更改邮件模板<br>只需要在环境变量内写入就行<br>但是环境变量限制大小,推荐按照<a href="https://github.com/lizheming/waline/issues/106">issues/106</a>配置<br>当然如果你的评论不是很多,并且之前配置过 Valine-Admin,那么你仍然可以使用 <code>LeanCloud</code> 异步发送通知</p><h2 id="表情包配置-Butterfly"><a href="#表情包配置-Butterfly" class="headerlink" title="表情包配置(Butterfly)"></a>表情包配置(Butterfly)</h2><p>这部分和 Valine 没多大差别,格式也可以直接复制粘贴 Valine 的<br>只需要把名字改为 waline.json<br>具体可以查看<a href="https://butterfly.js.org/posts/ceeb73f/#%E8%A9%95%E8%AB%96">主题文档</a></p><h1 id="CloudBase-云开发部署"><a href="#CloudBase-云开发部署" class="headerlink" title="CloudBase 云开发部署"></a>CloudBase 云开发部署</h1><p>可以去看看<a href="https://blog.ccknbc.cc/posts/waline-commens-system-deployment-logs/#CloudBase-%E4%BA%91%E5%BC%80%E5%8F%91%E9%83%A8%E7%BD%B2">@CCKNBC</a>(CC)大佬写的</p><h1 id="升级"><a href="#升级" class="headerlink" title="升级"></a>升级</h1><h2 id="Vercel"><a href="#Vercel" class="headerlink" title="Vercel"></a>Vercel</h2><p>所需要的工具</p><ul><li><a href="https://github.com/marketplace/renovate">Renovate</a></li><li><a href="https://github.com/marketplace/mergify">Mergify</a></li></ul><p>!在这之前仓库必须公开!<br>安装完成后就可以删除 <code>Waline</code> 仓库,再 fork <a href="https://github.com/ccknbc-actions/waline">CC 的仓库</a>,之后绑定到 fork 的仓库并重新部署即可</p><p>但是如果你没用 腾讯云开发 就把 <code>.github/workflows/Update Waline TCB.yml</code> 里的文件删掉,因为涉及到自动部署更新云开发,还有环境变量,如果没设定会导致报错</p><h2 id="Tencent-Cloudbase"><a href="#Tencent-Cloudbase" class="headerlink" title="Tencent Cloudbase"></a>Tencent Cloudbase</h2><p>和上面一样<br>Fork <a href="https://github.com/ccknbc-actions/waline">CC 的仓库</a> 然后新建几个变量<br>进入你的仓库/settings/secrets/actions</p><div class="table-container"><table><thead><tr><th>变量名</th><th>变量解释</th></tr></thead><tbody><tr><td>SECRETID</td><td>API 访问密钥 ID,可<a href="https://console.cloud.tencent.com/cam/capi">点击这里</a></td></tr><tr><td>新建/查看</td></tr><tr><td>SECRETKEY</td><td>API 访问密钥 KEY,可<a href="https://console.cloud.tencent.com/cam/capi">点击这里</a></td></tr><tr><td>新建/查看</td></tr><tr><td>TCBFUNNAME(没什么好加密的,就叫 waline 算了)</td><td>你想要新建/已有函数的名称,比如 <code>Waline</code></td></tr><tr><td>TCBENVID</td><td>环境 ID,可<a href="https://console.cloud.tencent.com/tcb/env/overview">点击这里</a></td></tr></tbody></table></div><p>或<a href="https://console.cloud.tencent.com/tcb/env/index">这里</a><br>查看,地址栏后也会显示,反正就是很多地方都在上面点一下就能看到 |</p><hr><p>AD!</p><p>我的博客即将同步至腾讯云+社区,邀请大家一同入驻:<a href="https://cloud.tencent.com/developer/support-plan?invite_code=3gll8aqhc2kgg">https://cloud.tencent.com/developer/support-plan?invite_code=3gll8aqhc2kgg</a></p>]]></content>
<summary type="html">SL部署Waline评论系统时的日志,希望你也能用上这款评论系统</summary>
<category term="评论" scheme="https://blog.slqwq.cn/categories/%E8%AF%84%E8%AE%BA/"/>
<category term="部署日志" scheme="https://blog.slqwq.cn/categories/%E8%AF%84%E8%AE%BA/%E9%83%A8%E7%BD%B2%E6%97%A5%E5%BF%97/"/>
<category term="评论" scheme="https://blog.slqwq.cn/tags/%E8%AF%84%E8%AE%BA/"/>
<category term="部署日志" scheme="https://blog.slqwq.cn/tags/%E9%83%A8%E7%BD%B2%E6%97%A5%E5%BF%97/"/>
</entry>
<entry>
<title>使用语雀随时编写文章</title>
<link href="https://blog.slqwq.cn/2021/posts/gklcufla/index.html"/>
<id>https://blog.slqwq.cn/2021/posts/gklcufla/index.html</id>
<published>2021-02-20T11:41:21.000Z</published>
<updated>2023-02-01T11:29:35.177Z</updated>
<content type="html"><![CDATA[<blockquote><p> 本文章基于<a href="https://zfe.space/post/554e.html">冰卡诺老师的教程</a>编写<br>「语雀」是一个「专业的云端知识库」,孵化自 <a href="https://www.antfin.com/?deer_tracert_token=cc478126-c93a-459b-a448-dd41de67f2d4">蚂蚁金服</a> ,是 <a href="https://www.yuque.com/yubo/explore/tcaywl?deer_tracert_token=cc478126-c93a-459b-a448-dd41de67f2d4">体验科技</a> 理念下的一款创新产品,已是 10 万阿里员工进行文档编写、知识沉淀的标配。<br>语雀诞生伊始,只是希望能给工程师提供一个好用的工具用来写技术文档,达成「用 Markdown 写文档」这个小目标。但在产品研发的过程中,我们发现其实身边的每个人、每个团队、每个组织都有很多知识,但一直以来缺少一个好用的工具让这些知识不只是留在每个人的大脑或电脑里,还可以被记录、分享和交流。<br>所以,带着这颗初心,我们觉得语雀不应止步于服务工程师,应该致力于为每个想表达所思所想的人提供一款顺手的工具,让知识能得以记录和传播,让人们可以在「语雀」中平等快乐地创作和交流知识,让再小的个体也可以拥有自己的知识库。</p></blockquote><h1 id="部署流程"><a href="#部署流程" class="headerlink" title="部署流程"></a>部署流程</h1><p>在语雀上编写文章并发布 -> 通过 Webhook 触发 serverless 云函数的部署 — serverless 云函数使用 token 等数据调用 GitHub API -> GitHub Actions 脚本运行(包括安装依赖与 Hexo / 同步语雀文章到本地 / 执行部署)</p><h1 id="教前准备"><a href="#教前准备" class="headerlink" title="教前准备"></a>教前准备</h1><ul><li>一个语雀账号</li></ul><a class="btn-beautify outline green larger" href="https://www.yuque.com/login?platform=wechat&inviteToken=f6e959505e77f114312173f53ec62f7b2c4ff248e08ed045603ad16d2ecf62ec" title="Click Me"><i class="far fa-hand-point-right"></i><span>Click Me</span></a><ul><li>Vercel 账号</li><li>GitHub 私钥</li></ul><h2 id="GitHub-私钥的获得"><a href="#GitHub-私钥的获得" class="headerlink" title="GitHub 私钥的获得"></a>GitHub 私钥的获得</h2><a class="btn-beautify outline orange larger" href="https://github.com/settings/tokens" title="Click Me"><i class="far fa-hand-point-right"></i><span>Click Me</span></a><p>进入以上地址<br><img src="https://cdn.nlark.com/yuque/0/2021/png/12488964/1613794133135-53076e7e-49e3-4d92-9453-c8df7c660726.png#align=left&display=inline&height=428&margin=%5Bobject%20Object%5D&name=image.png&originHeight=856&originWidth=1895&size=180244&status=done&style=none&width=947.5" alt="image.png"></p><p>选择 Generate new token<br><img src="https://cdn.nlark.com/yuque/0/2021/png/12488964/1613794201009-7268b5a9-3ad0-48b1-9543-d402d1585bdf.png#align=left&display=inline&height=254&margin=%5Bobject%20Object%5D&name=image.png&originHeight=508&originWidth=1146&size=57781&status=done&style=none&width=573" alt="image.png"><br>Note 随便填写<br>Select scopes 选择 repo / 或者宁可以全选,但是泄露了你就完蛋了(哭笑)<br><img src="https://cdn.nlark.com/yuque/0/2021/png/12488964/1613794290580-44aca6a7-fe80-4b5a-b691-5a7e190ec607.png#align=left&display=inline&height=41&margin=%5Bobject%20Object%5D&name=image.png&originHeight=82&originWidth=1105&size=7769&status=done&style=none&width=552.5" alt="image.png"><br>生成好后复制这一串(避免有人手贱,推荐点击后面的蓝色按钮<img src="https://cdn.nlark.com/yuque/0/2021/png/12488964/1613794321440-4e986b79-26e1-4a71-b995-ed4e0ef2fa7b.png#align=left&display=inline&height=24&margin=%5Bobject%20Object%5D&name=image.png&originHeight=48&originWidth=41&size=462&status=done&style=none&width=20.5" alt="image.png"><br>然后我们可以新建个 txt 记录下来,避免老年痴呆忘记(不是)<br><img src="https://cdn.nlark.com/yuque/0/2021/png/12488964/1613794384285-47ab5e7d-b087-4d16-b0db-05e94348338c.png#align=left&display=inline&height=473&margin=%5Bobject%20Object%5D&name=image.png&originHeight=946&originWidth=1202&size=436597&status=done&style=none&width=601" alt="image.png"></p><h2 id="仓库新建"><a href="#仓库新建" class="headerlink" title="仓库新建"></a>仓库新建</h2><p>进入 GitHub 新建仓库<br><a class="btn-beautify outline orange larger" href="https://github.com/new" title="点我传送"><i class="far fa-hand-point-right"></i><span>点我传送</span></a><br><img src="https://cdn.nlark.com/yuque/0/2021/png/12488964/1613794501142-563d3399-8640-4fae-bd35-c5b155fcea5f.png#align=left&display=inline&height=338&margin=%5Bobject%20Object%5D&name=image.png&originHeight=676&originWidth=1163&size=74636&status=done&style=none&width=581.5" alt="image.png"><br>创建仓库时,权限请选择 Private(否则后续会很麻烦的)</p><h1 id="开始工作"><a href="#开始工作" class="headerlink" title="开始工作"></a>开始工作</h1><h2 id="创建知识库"><a href="#创建知识库" class="headerlink" title="创建知识库"></a>创建知识库</h2><p>登录语雀,进入<a href="https://www.yuque.com/dashboard">工作台</a><br>进入<a href="https://www.yuque.com/dashboard/my_books">个人知识库</a><br><img src="https://cdn.nlark.com/yuque/0/2021/png/12488964/1613794635798-0d420722-b9d5-43ae-aab4-63085925d0c9.png#align=left&display=inline&height=434&margin=%5Bobject%20Object%5D&name=image.png&originHeight=867&originWidth=1882&size=97209&status=done&style=none&width=941" alt="image.png"><br>选择创建知识库<br><img src="https://cdn.nlark.com/yuque/0/2021/png/12488964/1613794717549-8483e394-ed71-49f9-9df9-ea6f3c1cc2ca.png#align=left&display=inline&height=419&margin=%5Bobject%20Object%5D&name=image.png&originHeight=838&originWidth=1642&size=175733&status=done&style=none&width=821" alt="image.png"><br>归属选择你自己,类型选择文档知识库<br>点击下一步<br><img src="https://cdn.nlark.com/yuque/0/2021/png/12488964/1613794787185-a03d9656-feb9-4887-8af7-aff03fc038db.png#align=left&display=inline&height=371&margin=%5Bobject%20Object%5D&name=image.png&originHeight=743&originWidth=1273&size=100718&status=done&style=none&width=636.5" alt="image.png"><br>名称随便填写,可见范围选择互联网可见<br>公开内容是否允许搜索引擎收录选择允许(其实允许不允许也没关系)<br>然后我们点击三个点 - 管理文档<br>新建 - 导入<img src="https://cdn.nlark.com/yuque/0/2021/png/12488964/1613794928815-d3f3928d-63ee-4e34-b718-de33f831c308.png#align=left&display=inline&height=420&margin=%5Bobject%20Object%5D&name=image.png&originHeight=839&originWidth=917&size=86665&status=done&style=none&width=458.5" alt="image.png"><br>类型选择 Markdown<br>为了方便以后文档的撰写,可以新建模板。注意图片链接需要加上’’防止被渲染成链接。<br>盗一下冰老师的图</p><p><img src="https://cdn.nlark.com/yuque/0/2020/png/8391485/1608132265373-09c816b7-bbf8-4a6f-9ea0-012060269c8b.png#align=left&display=inline&height=789&margin=%5Bobject%20Object%5D&name=image.png&originHeight=789&originWidth=1279&size=127438&status=done&style=none&width=1279#align=left&display=inline&height=789&margin=%5Bobject%20Object%5D&originHeight=789&originWidth=1279&status=done&style=none&width=1279" alt="image.png"><br>如果你使用了 abbrlink,请手动填写 abbrlink。<br>这里提供一套语雀模板</p><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line">---</span><br><span class="line"></span><br><span class="line">title: 使用语雀随时编写文章</span><br><span class="line">sticky: 1</span><br><span class="line">tags: [云端写作,语雀]</span><br><span class="line">description: 蛤,台式机不好带?GitHub上不去?用语雀写文章鸭</span><br><span class="line">categories: [云端写作,语雀[</span><br><span class="line">cover:</span><br><span class="line">photos: </span><br><span class="line">abbrlink: gklcufla</span><br><span class="line">date: 2021-02-20 11:41:21</span><br><span class="line">copyright<span class="emphasis">_author_</span>href: https://blog.slqwq.cn</span><br><span class="line">author: Hajeekn</span><br><span class="line">id: 32</span><br><span class="line"></span><br><span class="line">---</span><br></pre></td></tr></table></figure><p>tags 配置和 categories 配置推荐用数组格式</p><h2 id="安装语雀插件进行本地调试"><a href="#安装语雀插件进行本地调试" class="headerlink" title="安装语雀插件进行本地调试"></a>安装语雀插件进行本地调试</h2><p>为了确保在云端能够正常生成博客,需要首先在本地进行调试。<br>打开你的终端<br>使用</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm i -g yuque-hexo</span><br></pre></td></tr></table></figure><p>全局安装 yuque-hexo 插件</p><h3 id="修改-package-json"><a href="#修改-package-json" class="headerlink" title="修改 package.json"></a>修改 package.json</h3><p>在第一个对象代码块后增加”yuqueConfig”代码块。</p><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br></pre></td><td class="code"><pre><span class="line"><span class="punctuation">{</span></span><br><span class="line"> <span class="attr">"name"</span><span class="punctuation">:</span> <span class="string">"hexo-site"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"version"</span><span class="punctuation">:</span> <span class="string">"0.0.0"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"private"</span><span class="punctuation">:</span> <span class="literal"><span class="keyword">true</span></span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"scripts"</span><span class="punctuation">:</span> <span class="punctuation">{</span></span><br><span class="line"> <span class="attr">"build"</span><span class="punctuation">:</span> <span class="string">"hexo generate"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"clean"</span><span class="punctuation">:</span> <span class="string">"hexo clean"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"deploy"</span><span class="punctuation">:</span> <span class="string">"hexo deploy"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"server"</span><span class="punctuation">:</span> <span class="string">"hexo server"</span></span><br><span class="line"><span class="punctuation">}</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"yuqueConfig"</span><span class="punctuation">:</span> <span class="punctuation">{</span></span><br><span class="line"> <span class="attr">"postPath"</span><span class="punctuation">:</span> <span class="string">"source/_posts"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"cachePath"</span><span class="punctuation">:</span> <span class="string">"yuque.json"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"mdNameFormat"</span><span class="punctuation">:</span> <span class="string">"slug"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"adapter"</span><span class="punctuation">:</span> <span class="string">"markdown"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"concurrency"</span><span class="punctuation">:</span> <span class="number">5</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"baseUrl"</span><span class="punctuation">:</span> <span class="string">"https://www.yuque.com/api/v2"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"login"</span><span class="punctuation">:</span> <span class="string">"bingkanuo"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"repo"</span><span class="punctuation">:</span> <span class="string">"sffipz"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"token"</span><span class="punctuation">:</span> <span class="string">"***********************"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"onlyPublished"</span><span class="punctuation">:</span> <span class="literal"><span class="keyword">true</span></span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"onlyPublic"</span><span class="punctuation">:</span> <span class="literal"><span class="keyword">true</span></span></span><br><span class="line"> <span class="punctuation">}</span><span class="punctuation">,</span></span><br></pre></td></tr></table></figure><p>其中的 login repo token 需要自己更改<br>login:<br><img src="https://cdn.nlark.com/yuque/0/2021/png/12488964/1613795210885-4690758f-c8cb-4846-b5a5-7b330221299f.png#align=left&display=inline&height=23&margin=%5Bobject%20Object%5D&name=image.png&originHeight=45&originWidth=359&size=3434&status=done&style=none&width=179.5" alt="image.png">框起来的这一段(不要/和<a href="https://www.yuque.com">https://www.yuque.com</a>)<br>token 是在右上角头像 -> 账户设置 -> Token 添加的,权限的话只给读取就可以。复制粘贴获取的”token”字段。<br>再次盗图</p><p><img src="https://cdn.nlark.com/yuque/0/2020/png/8391485/1608133711645-569d4bb4-3de1-450b-80b6-5cf1ca7060b0.png#align=left&display=inline&height=789&margin=%5Bobject%20Object%5D&name=image.png&originHeight=789&originWidth=1279&size=176577&status=done&style=none&width=1279#align=left&display=inline&height=789&margin=%5Bobject%20Object%5D&originHeight=789&originWidth=1279&status=done&style=none&width=1279" alt="image.png"><br>添加完成后保存,在执行命令前,请先备份自己的_post 文件夹,因为语雀的下载操作会覆盖原有的_post 文件夹。<br>在终端中输入‘yuque-hexo sync’就会把语雀的文章给下载下来。<br>然后通过‘hexo g&hexo s’进行调试。<br>ps:输入‘yuque-hexo clean’就会清除_post 下的所有文章。<br>如果存在外挂标签,请确保外挂标签格式的书写规范,否则容易报错。</p><h2 id="配置-GitHub-Actions"><a href="#配置-GitHub-Actions" class="headerlink" title="配置 GitHub Actions"></a>配置 GitHub Actions</h2><h3 id="删除主题的-git-使用-npm-安装请忽略"><a href="#删除主题的-git-使用-npm-安装请忽略" class="headerlink" title="删除主题的.git(使用 npm 安装请忽略)"></a>删除主题的.git(使用 npm 安装请忽略)</h3><p>因为在仓库里面再放一个仓库是没法把里面那个仓库 push 到 github 的,只会传一个空文件夹,会导致后期博客成了空白页面,需要把 git clone 的 hexo 主题里的.git 文件夹给删掉。</p><h2 id="修改-hexo-主题文件中的-meta"><a href="#修改-hexo-主题文件中的-meta" class="headerlink" title="修改 hexo 主题文件中的 meta"></a>修改 hexo 主题文件中的 meta</h2><p>以 Butterfly 主题为例<br>进入%brt%/themes/butterfly/layout/includes/head.pug (Windows 用户请替换 / 为 \ )<br>在 meta(name=”theme-color” content=themeColor)后方添加 meta(name=”referrer” content=”no-referrer”)。<br>该步骤是确保语雀中的图片可以正常加载。</p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="string">meta(name="theme-color"</span> <span class="string">content=themeColor)</span></span><br><span class="line"><span class="string">meta(name="referrer"</span> <span class="string">content="no-referrer")</span></span><br></pre></td></tr></table></figure><h2 id="修改-hexo-的-config-yml"><a href="#修改-hexo-的-config-yml" class="headerlink" title="修改 hexo 的_config,yml"></a>修改 hexo 的_config,yml</h2><p>前往博客的根目录,修改 hexo 的_config,yml 中关于 develop 的配置</p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># Deployment</span></span><br><span class="line"><span class="comment">## Docs: https://hexo.io/docs/deployment.html</span></span><br><span class="line"><span class="attr">deploy:</span></span><br><span class="line"> <span class="attr">type:</span> <span class="string">git</span></span><br><span class="line"> <span class="attr">repository:</span></span><br><span class="line"> <span class="attr">github:</span> <span class="string">https://用户名:保存在txt中的密钥@github.com/用户名/仓库名.git</span></span><br><span class="line"> <span class="attr">branch:</span> <span class="string">master</span></span><br><span class="line"></span><br><span class="line"> <span class="comment">#例子:https://ladjeek-actions:*******@github.com/slblog-github/Blog.git</span></span><br></pre></td></tr></table></figure><h3 id="创建-GitHub-Actions-脚本"><a href="#创建-GitHub-Actions-脚本" class="headerlink" title="创建 GitHub Actions 脚本"></a>创建 GitHub Actions 脚本</h3><p>在博客根目录下新建.github 文件夹(点不要漏掉了),在该文件夹下新建 workflows 文件夹。<br><a href="https://cdn.nlark.com/yuque/0/2020/png/8391485/1608135890427-0dc37d9e-8eed-4581-8570-e806b5e4fa1a.png#align=left&display=inline&height=65&margin=%5Bobject%20Object%5D&name=image.png&originHeight=65&originWidth=349&size=4021&status=done&style=none&width=349"><img src="https://cdn.nlark.com/yuque/0/2020/png/8391485/1608135890427-0dc37d9e-8eed-4581-8570-e806b5e4fa1a.png#align=left&display=inline&height=65&margin=%5Bobject%20Object%5D&name=image.png&originHeight=65&originWidth=349&size=4021&status=done&style=none&width=349#align=left&display=inline&height=65&margin=%5Bobject%20Object%5D&originHeight=65&originWidth=349&status=done&style=none&width=349" alt="image.png"></a><br>在 workflows 文件夹下新建 autodeploy.yml。并填入以下代码。<br>将下面那个 user.name 和 user.email 修改为自己的信息,注意对齐。</p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">name:</span> <span class="string">自动部署</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 当有改动推送和语雀发布时,启动Action</span></span><br><span class="line"><span class="attr">on:</span> [<span class="string">push</span>, <span class="string">repository_dispatch</span>]</span><br><span class="line"></span><br><span class="line"><span class="attr">jobs:</span></span><br><span class="line"> <span class="attr">deploy:</span></span><br><span class="line"> <span class="attr">runs-on:</span> <span class="string">ubuntu-latest</span></span><br><span class="line"> <span class="attr">steps:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">检查分支</span></span><br><span class="line"> <span class="attr">uses:</span> <span class="string">actions/checkout@v2</span></span><br><span class="line"> <span class="attr">with:</span></span><br><span class="line"> <span class="attr">ref:</span> <span class="string">master</span></span><br><span class="line"></span><br><span class="line"> <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">安装</span> <span class="string">Node</span></span><br><span class="line"> <span class="attr">uses:</span> <span class="string">actions/setup-node@v1</span></span><br><span class="line"> <span class="attr">with:</span></span><br><span class="line"> <span class="attr">node-version:</span> <span class="string">"12.x"</span></span><br><span class="line"></span><br><span class="line"> <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">安装</span> <span class="string">Hexo</span></span><br><span class="line"> <span class="attr">run:</span> <span class="string">|</span></span><br><span class="line"><span class="string"> export TZ='Asia/Shanghai'</span></span><br><span class="line"><span class="string"> npm install hexo-cli -g </span></span><br><span class="line"><span class="string"> #npm install gulp-cli -g </span></span><br><span class="line"><span class="string"> #如果你有使用gulp的话,打开上面这一行</span></span><br><span class="line"><span class="string"> npm install yuque-hexo -g</span></span><br><span class="line"><span class="string"> yuque-hexo clean</span></span><br><span class="line"><span class="string"> yuque-hexo sync</span></span><br><span class="line"><span class="string"></span></span><br><span class="line"> <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">缓存</span> <span class="string">Hexo</span></span><br><span class="line"> <span class="attr">uses:</span> <span class="string">actions/cache@v1</span></span><br><span class="line"> <span class="attr">id:</span> <span class="string">cache</span></span><br><span class="line"> <span class="attr">with:</span></span><br><span class="line"> <span class="attr">path:</span> <span class="string">node_modules</span></span><br><span class="line"> <span class="attr">key:</span> <span class="string">${{runner.OS}}-${{hashFiles('**/package-lock.json')}}</span></span><br><span class="line"></span><br><span class="line"> <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">安装依赖</span></span><br><span class="line"> <span class="attr">if:</span> <span class="string">steps.cache.outputs.cache-hit</span> <span class="type">!=</span> <span class="string">'true'</span></span><br><span class="line"> <span class="attr">run:</span> <span class="string">|</span></span><br><span class="line"><span class="string"> npm install --save</span></span><br><span class="line"><span class="string"></span></span><br><span class="line"> <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">更新</span> <span class="string">语雀拉取缓存及文章</span> <span class="comment">#更新yuque 拉取的文章到GitHub仓库</span></span><br><span class="line"> <span class="attr">run:</span> <span class="string">|</span></span><br><span class="line"><span class="string"> echo `date +"%Y-%m-%d %H:%M:%S"` begin > time.log</span></span><br><span class="line"><span class="string"> git config --global user.email "[email protected]"</span></span><br><span class="line"><span class="string"> git config --global user.name "Zfour"</span></span><br><span class="line"><span class="string"> git add .</span></span><br><span class="line"><span class="string"> git commit -m "Refresh yuque json" -a</span></span><br><span class="line"><span class="string"></span></span><br><span class="line"> <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">推送</span> <span class="string">语雀拉取缓存及文章</span> <span class="comment">#推送修改后的yuque json</span></span><br><span class="line"> <span class="attr">uses:</span> <span class="string">ad-m/github-push-action@master</span></span><br><span class="line"> <span class="attr">with:</span></span><br><span class="line"> <span class="attr">github_token:</span> <span class="string">${{</span> <span class="string">secrets.GITHUB_TOKEN</span> <span class="string">}</span></span><br><span class="line"></span><br><span class="line"> <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">生成静态文件</span></span><br><span class="line"> <span class="attr">run:</span> <span class="string">|</span></span><br><span class="line"><span class="string"> hexo clean</span></span><br><span class="line"><span class="string"> hexo g</span></span><br><span class="line"><span class="string"> #gulp # 使用Gulp压缩取消#号并和上面命令对齐</span></span><br><span class="line"><span class="string"></span></span><br><span class="line"> <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">部署</span></span><br><span class="line"> <span class="attr">run:</span> <span class="string">|</span></span><br><span class="line"><span class="string"> git config --global user.name "slblog-github"</span></span><br><span class="line"><span class="string"> git config --global user.email "[email protected]"</span></span><br><span class="line"><span class="string"> hexo deploy</span></span><br></pre></td></tr></table></figure><h2 id="上传博客源码"><a href="#上传博客源码" class="headerlink" title="上传博客源码"></a>上传博客源码</h2><p>在你的终端输入:</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">git init</span><br><span class="line">git add .</span><br><span class="line">git commit -m <span class="string">"first commit"</span></span><br><span class="line">git remote add origin https://github.com/你的用户名/你的私有博客源码仓库名.git</span><br><span class="line">git push -u origin master</span><br></pre></td></tr></table></figure><h2 id="进行云端调试"><a href="#进行云端调试" class="headerlink" title="进行云端调试"></a>进行云端调试</h2><p>上传后你会发现 github action 生效。等待几分钟后,如果打勾,就说明部署成功。如果未打勾请检查出错的步骤。</p><h2 id="配置云函数"><a href="#配置云函数" class="headerlink" title="配置云函数"></a>配置云函数</h2><p>以下采用 Vercel 示范,其他云函数请看详细步骤:<a href="https://zfe.space/post/554e.html">https://zfe.space/post/554e.html</a><br>为了方便调用,冰老师写了一个 API<br>调用方式如下</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">https://yuque-vercel-webhook-api.vercel.app/api?token='{填写你的github私钥}'&user='{填写你的github用户名}'&source='{填写你的github仓库地址}'</span><br></pre></td></tr></table></figure><p>你需要传递的参数有 token,user,source。<br>当然你也可以直接 Fork 冰老师的项目自己搭建<br><a href="https://github.com/Zfour/yuque_vercel_webhook_api">https://github.com/Zfour/yuque_vercel_webhook_api</a><br>部署完成后将<a href="https://yuque-vercel-webhook-api.vercel.app">https://yuque-vercel-webhook-api.vercel.app</a>换成你搭建好的地址</p><h2 id="配置语雀的-webhook"><a href="#配置语雀的-webhook" class="headerlink" title="配置语雀的 webhook"></a>配置语雀的 webhook</h2><h3 id="设定触发规则"><a href="#设定触发规则" class="headerlink" title="设定触发规则"></a>设定触发规则</h3><p>在知识库中选择设置 -> 开发者<br><img src="https://cdn.nlark.com/yuque/0/2021/png/12488964/1613795895821-bbc15fcb-adab-4966-9b36-62ed416b8b73.png#align=left&display=inline&height=282&margin=%5Bobject%20Object%5D&name=image.png&originHeight=563&originWidth=900&size=44950&status=done&style=none&width=450" alt="image.png"><br>添加一个 WebHook<br>推送方式选择发布文档 更新文档 删除文档<br>然后名称随便写,URL 就把上面的调用方式补充完成放上去就行<br>设置完毕后,你可以尝试发布一篇文章进行测试。如果 github action 执行则说明配置成功。</p><h1 id="Thanks-for-you"><a href="#Thanks-for-you" class="headerlink" title="Thanks for you~"></a>Thanks for you~</h1>]]></content>
<summary type="html">蛤,台式机不好带?GitHub上不去?用语雀写文章鸭</summary>
<category term="云端写作" scheme="https://blog.slqwq.cn/categories/%E4%BA%91%E7%AB%AF%E5%86%99%E4%BD%9C/"/>
<category term="语雀" scheme="https://blog.slqwq.cn/categories/%E4%BA%91%E7%AB%AF%E5%86%99%E4%BD%9C/%E8%AF%AD%E9%9B%80/"/>
<category term="云端写作" scheme="https://blog.slqwq.cn/tags/%E4%BA%91%E7%AB%AF%E5%86%99%E4%BD%9C/"/>
<category term="语雀" scheme="https://blog.slqwq.cn/tags/%E8%AF%AD%E9%9B%80/"/>
</entry>
</feed>