渊澄YC

川流不息,渊澄取映

Cloudflare有一个pages的功能,类似于Github Page,可以用来托管静态网站。那有没有可能将hexo站点托管到CF pages呢?
下面来操作吧。

创建build.sh脚本

首先确保你在Github上有Hexo的仓库,我们在仓库的根目录新建一个名为build.sh的文件,内容如下:

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
#!/bin/bash

# 配置环境
npm install -g hexo-cli
mkdir hexo
cd hexo
hexo init
npm install
rm -rf source/_posts
mkdir -p source/_posts

# 安装主题(你们可以改成自己喜欢的主题)
git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly

# 使用新的渲染器
npm un hexo-renderer-marked --save
npm i hexo-renderer-markdown-it --save
# 处理图片
npm i hexo-image-link --save

# 复制文章到指定目录
cd ../
cp -r `ls | grep -v hexo | grep -v config.yml | xargs` hexo/source/_posts
# 复制配置文件
cp config.yml hexo

# 开始构建
cd hexo && hexo g --config config.yml

登录CF创建应用

登录到Cloudflare,切换到pages选项卡,新建一个项目,选择“连接到git”,使用Github账户登录
20220725160214
然后选择你的hexo仓库,点击下一步
20220725160035
按图片所示填入信息,然后点击保存并部署。
20220725160435
部署完成之后我们就可以使用系统分配的pages.dev域名来访问部署在Cloudflare的站点了。

测试同步

现在看下在github上发布一篇文章,看看会不会自动同步更新。
20220725160708

20220719161804
之前一直在使用L大openwrt中自带的阿里云盘webdav插件来,但最近发下插件老是运行报错,所以决定直接在openwrt的docker中跑阿里云盘webdav服务。
方法也很简单,直接在docker中运行下面命令就可以了

1
2
3
4
5
6
docker run -d --name=aliyundrive-webdav --restart=unless-stopped -p 2345:8080 \
-v /etc/aliyundrive-webdav/:/etc/aliyundrive-webdav/ \
-e REFRESH_TOKEN='token' \
-e WEBDAV_AUTH_USER=username \
-e WEBDAV_AUTH_PASSWORD=password\
messense/aliyundrive-webdav

备注:
1.2345为docker主机映射的端口,可以任意修改。
2.username为你的阿里云盘登录用户名。
3.password为你的阿里云盘登录密码。
4.如何获取阿里云盘的token请参考另一篇文章(https://miaoyanginfo.github.io/2022/05/22/15%E8%8E%B7%E5%8F%96%E9%98%BF%E9%87%8C%E4%BA%91%E7%9B%98refreshtoken/)

升级依赖测试文章发布。
20220620103038

每次写hexo文章的时候都需要手动敲入文章头部的front-matter字段,而且有时候可能会敲错,导致发布失败,那有没有一种简单的方法,输入某个字符就能带出这些内容呢?
你别说还真有,在vscode中有一个snippets的功能就可以实现上面的需求,下面跟我来操作吧。

编辑markdown.json文件

ctrl+shift+P打开配置搜索框搜索snippets。
20220525134538
然后搜索markdown编辑markdown.json文件
20220525134725
在文件中插入以下字段并保存。
这里prefix后面的title可以随意替换,之后输入这个词就会带出相应的内容。body里面的字段也可以随意增减。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
"Generate Hexo blog header": {
"prefix": "title",
"body": [
"---",
"title: ",
"date: $CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE $CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND",
"categories: ",
"tags:",
"cover: ",
"sticky: ",
"---",
],
"description": "hexo header"
}

20220525134901

编辑settings.json文件

在vscode中搜索settings.json文件进行编辑。
20220525135009
插入下面的字段并报错。

1
2
3
4
"[markdown]": {
"editor.wordWrap": "on",
"editor.quickSuggestions": true
},

大功告成

完成上面设置步骤之后在markdown文件中输入title就可以带出hexo所需的头部matter字段了。
20220525135235

青龙面板,是用来自动化定时执行脚本的控制面板。除了正常的用途之外,还可以用来薅狗东的羊毛。
刷了F大的openwrt系统之后,已经默认安装了docker的运行环境,用putty直接登录到系统之后执行下面的脚本就可以直接安装最新版本的青龙面板了。

拉取镜像

1
docker pull whyour/qinglong:latest

部署容器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
docker run -dit \
-v /mnt/mmcblk2p4/docker/qinglong/config:/ql/config \
-v /mnt/mmcblk2p4/docker/qinglong/log:/ql/log \
-v /mnt/mmcblk2p4/docker/qinglong/db:/ql/db \
-v /mnt/mmcblk2p4/docker/qinglong/scripts:/ql/scripts \
-v /mnt/mmcblk2p4/docker/qinglong/jbot:/ql/jbot \
-v /mnt/mmcblk2p4/docker/qinglong/repo:/ql/repo \
-p 5700:5700 \
-e ENABLE_HANGUP=true \
-e ENABLE_WEB_PANEL=true \
--name qinglong \
--hostname qinglong \
--net=host \
--restart always \
whyour/qinglong:latest

上面的挂载路径需要根据你设备的实际情况做修改,我这里以刷了F大openwrt的N1盒子为例。

访问测试

容器成功运行之后,在openwrt后台的docker选项卡可以看到刚才创建好的容器,访问openwrt的地址加端口5700就可以访问到青龙面板的网页了。
20220523094120

安装依赖

为了之后脚本的正常运行,我们需要安装一些依赖,直接在面板里面操作就可以
20220523092903
复制下面对应类型的字段,添加依赖,选择自动拆分,就可以批量安装了。
20220523093308

NodeJS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
crypto-js
prettytable
dotenv
jsdom
date-fns
tough-cookie
tslib
[email protected]
ts-md5
jsdom -g
jieba
fs
form-data
json5
global-agent
png-js
@types/node
require
typescript
js-base64
axios
Python3
1
2
3
4
5
requests
canvas
ping3
jieba
aiohttp
Linux
1
2
3
bizCode
bizMsg
lxml

拉取脚本

推荐几个不错的库,当然你也可以直接拉取你需要的。

1
ql repo https://github.com/smiek2121/scripts.git "jd_|gua_" "" "ZooFaker_Necklace.js|JDJRValidator_Pure.js|sign_graphics_validate.js|cleancart_activity.js|jdCookie.js|sendNotify.js"
1
ql repo https://github.com/KingRan/KR.git "jd_|jx_|jdCookie" "activity|backUp" "^jd[^_]|USER|utils|function|sign|sendNotify|ql|JDJR"

添加COOKIE

环境变量里面新建一个变量,名称填入JD_COOKIE,值填入你的jd cookie。
20220523093832
如何获取JD的COOKIE请自行百度。

运行脚本

变量添加之后我们就可以运行拉取回来的脚本了,也可以看到脚本运行的日志和报错信息。
20220523093957

访问阿里云盘网页版,成功登录之后,按下F12,打开开发者模式,按照下图获取refresh_token。

获取到这个token之后我们就可以在各种阿里云盘的WEBDAV服务中使用这个token来开启阿里云盘的WEBDAV服务了。
自动获取:
登录阿里云盘后,控制台粘贴 JSON.parse(localStorage.token).refresh_token

现在我使用的HomeAssistant是用Docker跑在OPENWRT系统上的,目前版本是2021.12.5,之前尝试过直接拉取Dcoker镜像来升级,但是提示空间不足报错,后来就一直没有理他,运行了大半年还算稳定。今天打开HA官网看到最新版本已经更新到了2022.5.5版本了,所以是时候来一次升级操作了。
本周末的任务就是升级我的HomeAssistant系统到最新的2022.5.5版本。
如果不能直接升级,就只能备份现有的配置,然后删除容器,重新部署了。
2022-5-22更新:
今天抽时间试着做了更新操作,不出意外,还是由于空间不足,在拉取最新docker镜像的时候报错了。
所以只能重新安装openwrt,然后再拉取镜像操作。
下载了F大5月9日编译的最新openwrt固件,写入U盘镜像。

从U盘启动openwrt系统,执行命令将系统安装到N1的emmc上。

1
cd  /root   &&   ./install-to-emmc.sh

将N1盒子用网线和电脑直连,电脑设置为192.168.1的网段,进入openwrt的WEB界面修改LAN口地址为你网络环境的网段,保存设置之后将设备接入你的网络中。

如果和我一样作为旁路由来使用,还需要关闭LAN口的DHCP功能。

用putty登录到openwrt系统,执行下面的命令来拉取镜像和运行容器。

1
docker pull homeassistant/aarch64-homeassistant:latest
1
docker run -d -v /mnt/mmcblk2p4/docker/homeassisatant/config:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/aarch64-homeassistant:latest

一切顺利的话,访问openwrt的地址:8123就会看到最新版本的HomeAssistant系统界面了

下载镜像

打开群晖的DOcker套件,切换到注册表选项卡,找到Centos,下载,标签选择latest。
20220429095414
下载完成之后我们可以在映像选项卡中找到它。

配置环境

高级设置里面将自动重启打勾。
20220429095758
切换到存储空间,配置本地文件夹映射到镜像的data文件夹。
20220429095914
指定一个本地未使用的端口映射到镜像的22端口。
20220429100121
完成上面设置之后运行容器。

系统初始化

进入终端机更新系统:

1
yum -y update

安装所需的软件包:

1
yum install vim openssl openssh-server net-tools initscripts passwd -y

如果你在运行上面的更新命令时报错,需要依次执行下方命令:

1
2
3
cd /etc/yum.repos.d/
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

设置SSH连接

创建SSH key

1
2
3
4
5
ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N '' 

ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''

ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N ''

UsePAM yes 改为 UsePAM no

修改ssh_config

1
vim /etc/ssh/sshd_config

UsePAM yes 改为 UsePAM no

启动ssh

1
2
/usr/sbin/sshd -D &
echo "/usr/sbin/sshd -D &" >> /etc/rc.local 添加到开机启动,就不用每次重启后运行了

修改root密码

1
passwd root

使用第三方SSH工具登录

设置完成之后我们可以使用其他第三方SSH工具来登录到我们的CentOS系统,比如Putty。
输入主机IP,SSH端口为我们映射的端口号,用户名root,密码时我们上一步修改的密码。
20220429135856

收工

至此我们就完成了在群晖Docker上安装部署CentOS的过程,接下来我们就可以用SSH工具在我们搭建的CentOS上部署各种服务了

最近芒果台联合香港TVB推出的音乐节目《声生不息》,将“沉睡”很多年的港乐再次呈现在了观众的面前,尤其是在第一期结尾大合唱《海阔天空》的时候,突然出现黄家驹的原声,不知让多少人又热血沸腾、潸然泪目。
其实我也自诩算个伪港乐迷,日常听的曲库里面差不多有60%左右都是港乐,尤其是上世纪80-90年代的香港乐坛,是我心目中港乐最为辉煌的时期,期间涌现了一批可以被记载到历史的歌手及音乐人,谭咏麟、张国荣、四大天王、陈百强、李克勤,当然还有我的偶像Beyond黄家驹。
开始关注Beyond乐队是从2003年他们开20周年演唱会开始,之前我甚至不知道Beyond乐队这个名字,只知道在香港有个歌手叫黄家驹。
20220427133927
和大部分人一样,开始也是喜欢听他们的那几首传唱度较高的《光辉岁月》和《真的爱你》等等,再过后来渐渐了解了乐队的起源以及发展历程之后,再听诸如《灰色轨迹》《未曾后悔》等歌曲之后,我已经被他们的音乐完全吸引,虽然他们的作品基本上都是粤语,但丝毫没有影响到其作品在内地的传唱度,和同一时代的其他香港歌曲相比,他们的音乐坚持原创,有思想,有深度,表达大众的心声,所以才能真正唱到普通人的内心深处,激励一代又一代的年轻人,这才是港乐真正的魅力所在。
当然,八九十年代的香港乐坛,还是有很大一部分歌曲是直接将日本歌填词翻唱的,但就算这样也丝毫没有影响这些作品成为流传至今的经典。
而到了2000年之后,港乐逐渐进入衰退期,很久都没有能再次打动人心的作品出现了,能被人记得的名字,好像也只剩下陈奕迅了吧。

下面分享我的Apple Music曲库中始终占有一席地位的TOP20港乐,仅代表个人喜好,排名不分先后。

海阔天空-Beyond

灰色轨迹-Beyond

偏偏喜欢你-陈百强

漫步人生路-邓丽君

月半小夜曲-李克勤

敢爱敢做-林子祥

讲不出再见-谭咏麟

风继续吹-张国荣

当年情-张国荣

一生中最爱-谭咏麟

沉默是金-许冠杰/张国荣

浪子心声-许冠杰

遥远的她-张学友

只想一生跟你走-张学友

红日-李克勤

一生何求-陈百强

光辉岁月-Beyond

谁可改变-谭咏麟

千千阙歌-陈慧娴

富士山下-陈奕迅

自从部署了HEXO,就开始寻找一个靠谱的图床系统来用于托管网站的图片。
之前在群晖NAS上使用Chevereto系统部署了一套私有的图床系统,但是如果用于网站图片的托管,需要24小时开机,不仅费电,而且还会加大硬盘的读写,增加坏盘的风险,所以还是放弃了这个想法。
接着我在七牛云上部署了图床系统,想着他有10GB免费的额度,也够用了。但部署完成之后,第二天查看账单发现有了费用,名字叫做https-cdn-海外加速费用,咨询了客服工单之后说是因为我使用的域名没有备案,所以只能使用海外站点,如果你从国内访问的话就会产生费用。
于是我想到了用GitHub来部署图床,网上也有大把的教程,操作起来也很简单,需要配合PicGo来使用。

创建一个公开仓库

生成GitHub Token

进入GitHub账户设置-开发者设置-私人Token,生成一个新的token并复制。

安装PicGo设置

安装完成PicGo之之后按照下图进行设置。

如果感觉在国内访问GitHub速度慢的话,可以在设置自定义域名那里填入https://cdn.jsdelivr.net/gh/GitHub用户名/仓库名
来使用jsdeliver提供的免费cdn服务加速。
这样设置就完成了,将图片用PicGo上传之后,图片地址就会自动复制到粘贴板,使用起来很方便