记录使用systemd过程中遇到的bug
发现问题:在使用Systemd守护node服务的过程中,遇到如下报错
cannot find module hexo from path
排查思路:关掉这个service服务,直接启动node服务看是否能正常工作?
可以 => node服务或sh脚本执行环境可能存在问题;
解决方案:sh脚本中的命令改成使用绝对路径执行;
从零开始的个人博客搭建07-使用systemd守护自动部署进程
背景:在上一篇文章中,我在服务器中部署了一个webhook-handler.js的node服务用于处理webhook的请求并拉取代码完成自动部署,但在实际使用中发现,这个服务经常莫名其妙就停掉了,导致我提交的代码没有及时更新到服务器。
经查阅资料发现,需要给node服务写一个.service文件,即进程守护文件,当服务异常崩溃的时候可以自动重启服务,提升服务的稳定性。
什么是Systemd?systemd是目前大多数Linux发行版的内置进程管理工具,PID是1,是linux系统中启动的第一个进程,所有的其他进程都是systemd的子进程。
想要详细了解systemd可以参考阮一峰大佬写的这篇教程:https://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html
具体操作:1.在本地新建一个webhookhandler.service文件,记事本打开,写入如下内容123456789101112131415[Unit]Description=Main Node.js ServiceAfter=network ...
从零开始的个人博客搭建06-使用webhook实现git项目在云服务器上的自动部署
什么是WebHook?WebHook,可以简单理解为一个由特定条件触发的http请求。
例子:在Github中的每个仓库都可以配置webhook,当push触发webhook后,github会根据配置向特定的服务器发送一个http/https请求,并携带相应的信息,服务器收到请求后,可以根据信息做一系列不同的操作。
自动部署实现思路:github远程仓库有webhook功能,在代码push时,可以配置让其向指定服务器发送一个post请求;当我们的云服务器接受到这个请求时,执行git pull命令拉取最新代码,并执行一系列bash命令即可完成自动部署。
架构图:
问题:在实践过程中,我发现在服务器上无法直接拉取github代码,原因可能与github被墙有关,因此需要转变思路,使用国内的代码托管平台同步github上的代码,并发送webhook请求,然后服务器再拉取国内代码托管平台上的代码,最后再执行自动部署脚本完成部署
解决思路:
放弃使用github,改用gitee仓库来存储代码
使用github同步
调整后的架构:
具体实现步骤:一、配置gitee仓库的webho ...
从零开始的个人博客搭建05-接入twikoo第三方评论系统
一、简单介绍一下TwikooTwikoo评论系统是目前国内部署个人最推荐的评论系统,之前搞过waline但是waline是基于vercel部署的,因为vercel被墙了导致国内访问体验很差
Twikoo基于腾讯云函数开发,可在国内正常访问,本文采用twikoo官网中的Netlify部署方式,具体操作步骤也可移步官网查看。
twikoo官网:https://twikoo.js.org/
二、具体操作
申请 MongoDB 账号
创建免费 MongoDB 数据库,区域推荐选择 AWS / N. Virginia (us-east-1)(我选的是香港的)
在 Database Access 页面点击 Add New Database User 创建数据库用户,Authentication Method 选 Password,在 Password Authentication 下设置数据库用户名和密码,用户名和密码可包含数字和大小写字母,请勿包含特殊符号。点击 Database User Privileges 下方的 Add Built In Role,Select Role 选择 Atl ...
从零开始的个人博客搭建04——10分钟完成Linux系统下的静态网站部署
前情提要:昨天兴致勃勃地在腾讯买了个域名,准备给部署到腾讯云COS的网站使用,然后发现不买腾讯云的服务器居然没法备案,因为之前已经买过一次腾讯的服务器,导致这次享受不到首单优惠,买一年轻量要一百多,不想花这钱,于是把目光转向阿里,参加新人活动白嫖了三个月的服务器,决定先跑通整个流程后面再考虑买长期。目前腾讯阿里华为都在搞年终活动,买服务器还是比较便宜的,我把活动页面放在下面,有需要可以自行考虑购买。
腾讯云活动页面:https://cloud.tencent.com/act/pro/bestselling?from=21736
阿里云活动页面:https://www.aliyun.com/daily-act/ecs/activity_selection?spm=5176.28508143.J_ahRFo5CaAe_asSOaCgS4J.6.e939154a2unRUe&scm=20140722.M_10071131.P_149.MO_2274-ID_10071131-MID_10071131-CID_30876-ST_9607-V_1
具体步骤:话不多说直接上实操
1 ...
更改ssh端口解决Github仓库连接问题
吃着火锅唱着歌,有一天Github突然就连不上了,报错:ssh:connect to host github.com port 22: Connection timed out,通过查阅各种资料,得知原因可能是由于电脑的防火墙或者其他网络原因导致ssh连接方式 端口22被封锁。
如果22号端口不行,那就换一个端口。
打开ssh公钥的目录 C:\Users\dell.ssh,在目录下创建一个Config文件,注意Config文件没有后缀,然后将如下配置复制进文件里保存退出
123456Host github.comUser [替换成你的邮箱]Hostname ssh.github.comPreferredAuthentications publickeyIdentityFile ~/.ssh/[替换成你的ssh私钥文件名]Port 443
替换后执行以下命令测试连接
1ssh -T git@github.com
弹出提示是否继续,确定
如果提示访问成功就可以正常进行Git拉取和提交操作了
从零开始的个人博客搭建03——PicGo+腾讯云COS搭建图床配合Typora提升写作体验
一、背景此前笔者在写作时,都是直接在项目里直接用VSCode写作,当涉及到图片的插入时,因为开发环境和部署环境路径的不同,默认不支持本地预览,如果要在本地和线上环境都能正常显示图片非常费劲(需要安装插件+每个文章建一个同名文件夹,还有若干的限制),非常痛苦。
因此一个能在线下和线上都正常预览图片的简单高效写作方法,成为刚需。
通过多方查找资料,找到了**Typora和其内置PicGo**
二、Typora和PicGO简介1.什么是Typora?Typora是一款知名度很高的Markdown编辑器,以前用过它的基础功能,当时还是免费的内测版,现在已经发布了正式版,89块钱即可购买永久使用。我们需要使用它的图片上传功能。
2.什么是PicGo?PicGo是一款图片上传插件,支持对多种图床的上传操作,本文使用的1.7.6版本Typora中就有PicGO插件的配置选项。
关于图床的解释可以参考这篇知乎的回答,简单地讲,图床就是专门存放图片的服务器,最好拥有庞大的存储空间(这一点对象存储完美满足),图床中可以给主服务器减小压力。
https://www.zhihu.com/question/ ...
从零开始的个人博客搭建02——GitHub Action+腾讯云COS实现国内部署
一、实现原理Github仓库收到代码push后,执行GithubAction,自动打包构建,并将生成的静态资源文件推送到腾讯云COS存储桶内,借助腾讯云COS的静态网站功能,完成博客的自动构建。
二、相关概念2.1 什么是GithubAction?Github Actions 是 GitHub 推出的持续集成 (Continuous integration , 简称 (CI) 服务 , 它提供了配置虚拟服务器环境 , 基于它可以进行构建 、 测试 、 打包 、 部署项目 。
GitHub Actions 为每个任务 (job) 都提供了一个虚拟机来执行 , 每台虚拟机都有相同的硬件资源 :
2-core CPU7 GB RA M 内存14 GB SSD 硬盘空间(实测硬盘总容量为 90G 左右 , 可用空间为 30G 左右)
使用限制:
每个仓库只能同时支持 20 个 workflow 并行 。每小时可以调用 1000 次 GitHub API 。每个 job 最多可以执行 6 个小时免费版的用户最大支持 20 个 job 并发执行 , macOS 最大只支持 5 个私有仓库每月 ...
MD常用语法速查
1.多级标题# 一级标题## 二级标题### 三级标题#### 四级标题##### 五级标题###### 六级标题2.使用双回车换行hellow,
world
3.强调*斜体*
*粗体*
4.删除线
语法:双波浪线包裹
被删除文本
5.分隔线
语法:*** 或 —
6.下划线()<u>下划线文本</u>
7.图片插入
语法:![我的哔哩哔哩头像](https://i2.hdslb.com/bfs/face/cf345746a9546fcfbf0b6563c1de26d218a5565d.jpg@120w_120h_1c.avif)
8.代码块插入(可指定语言)语法:```js
console.log(‘hellow,world!’)
```
1console.log('Hellow,world!')
9.引用
> 这是一个引用
10.无序列表1234语法:+ 红的+ 黄的+ 蓝的
红的
黄的
蓝的
11.有序列表12341. 第一点2. 第二点3. 第三点4. 第四点
第 ...
从零开始的个人博客搭建01——使用Hexo框架搭建前端博客项目+githubPage部署
记录使用Hexo框架的建站过程1.全局安装hexo1$ npm i hexo-cli -g
2.使用命令快速搭建博客项目1$ hexo init [文件夹名]
3.调试运行1$ hexo server
4.一建部署到githubPage
参考Hexo官方的GitHub Pages部署文章: https://hexo.io/zh-cn/docs/github-pages
5.安装butterfly主题1npm i hexo-theme-butterfly
参考butterfly官方文档进行配置: https://butterfly.js.org/posts/21cfbf15/#%E6%87%89%E7%94%A8%E4%B8%BB%E9%A1%8C
6.页面背景特效和鼠标点击效果美化
参考butterfly官方文档进行配置: https://butterfly.js.org/posts/ceeb73f/
7.页脚养鱼123456#在主题配置文件注入jquery和页脚养鱼代码inject: head: - <script src="https:// ...