Vuhks

壁立千仞,无欲则刚

Hexo本地化随时部署

Hexo本地化随时部署

1. 需求

  • 使用dsm自动构建网页代码,并上传到vps上
  • 将dsm源码放在dsm共享盘,并能同步到阿里云盘,挂载在本机windows中,基于ddns
  • 本地一旦上传,dsm自动构建

2. 部署dsm公网共享盘至windows本地

2.1 挂载dsm共享盘至windows本地

2.1.1 dsm设置

简单操作,在dsm的file station中启用hexo的远程装载权限,设置为所有用户,并在控制面板中打开家目录。

image-20230123163747729

image-20230123163818828

2.1.2 windows本地挂载

以win11为例,打开资源管理器,点击```,选择映射网络驱动器,文件夹按示例填写dsm中的共享磁盘的网络位置。

image-20230123164000994

image-20230123164034240

2.1.3 测试

在文件夹中新建一个txt文件,查看dsm中是否新建成功,然后在dsm中删除,查看本地挂载的文件是否被成功删除。

2.2 映射到公网

这里用的是基于openwrt的ddns获取域名,用防火墙转发。只需要放开dsm中对外提供samba服务的端口重新映射至wan口即可。

按下图转发并放开对应端口

image-20230123171100808

2.2.1 防火墙转发设置

image-20230123171156726

2.2.2 防火墙通信设置

image-20230123171037127

2.2.3 重新挂载公网dsm共享盘

参考步骤2

3. dsm自动构建网页代码,并上传到vps上

3.1 本机搭建hexo环境

3.1.1 nodejs 安装

Hexo是基于node.js的,所以我们在安装它之前需要用到npm安装工具,这个工具是 node.js 安装包的工具,所以,我们先要安装 node.js。

3.1.2 git 环境配置

参考文档《Git与Github使用笔记》第7章 Git和Github的使用_Bruceoxl的博客-CSDN博客

1.下载并安装git-bash

安装成功后会有git bash,git gui,在命令行输入git –version能显示版本号

2.登陆github新建一个test库

3.生成本地ssh key,并复制到github账号设置中

1
ssh-keygen -t rsa "邮箱地址" #生成本地ssh key,一般在本地用户目录下.ssh文件夹下,已经存在的不用再生成。

4.测试是否配置成功,输入下面指令,回显如图所示。

1
ssh -T git@gihub.com

image-20230129122320788

5.配置本地用户和邮箱

1
2
git config --global user.name “xxx” //设置用户名
git config --global user.email “邮箱” //设置邮箱

3.1.3 git仓库绑定

暂时不需要

3.1.4 hexo配置

  1. 安装
1
npm install -g hexo-cli
  1. 初始化
1
hexo init
  1. 生成网页
1
hexo g
  1. 本地测试
1
hexo server

3.1.5 hexo迁移

将原本的hexo源码中的scafflods,source,themes/next,已经_config.yml文件拷贝过来。

其中出现老版本警告关于use-date_for_updated警告,参考https://cyfeng.science/2020/11/20/hexo-use-date-for-updated-warning-solution/,将_config.yml文件将```use_date_for_update:false``` 修改为update_option: 'date'注意冒号后有个空格。

3.1.6 hexo错误

hexo d后的错误,error:deployer not found :git

image-20230130193217924

参考 hexo d命令报错 ERROR Deployer not found: git_蓝蓝223的博客-CSDN博客

原因为未安装hexo-deployer-git插件,在站点目录下安装该插件即可

1
npm install hexo-deployer-git --save

3.2将hexo源码放置在dsm远程目录中

3.2.1 将本地迁移的代码复制到第2节中的文件夹中

用hexo g、hexo s时代码会卡顿