ximingx(帅鸿宇)

ximingx(帅鸿宇)

1. 项目介绍

项目演示地址:https://ximingx.org.cn/

项目github:https://github.com/ximingx/blog

想象一下,你是一位热爱写作的程序员小王。每天,你都有很多新的想法和技术心得想要分享。但是,管理你的博客网站却成了一个让你头疼的问题。

周一早晨,你坐在电脑前,准备写一篇关于最新学到的编程技巧的博客文章。然而,你突然想到还要登录到博客管理后台,配置文章类别,调整发布时间,上传图片,等等。这些繁琐的步骤让你感到沮丧,你意识到要花费至少半小时来处理这些技术细节,而不是专注于写作本身。

你心想:“要是我能只管写作,其他的事情都自动完成就好了。我只想用Markdown写下我的想法,然后它们就神奇地出现在我的博客上,那该多好啊!”

这时这个博客系统允许你只需在本地编写Markdown文档,就能自动将内容上传到服务器并发布到你的博客上。有了这个工具,你可以随时随地打开你喜欢的文本编辑器,用Markdown格式写下你的想法。完成后,你只需保存文件,剩下的一切都会自动完成。这样,你就可以将更多的时间和精力投入到真正重要的事情上:分享你的知识和经验。

1. 使用案例

如下是项目目录,你创建一些md文档与目录

posts
├── assets
│   └── image-20240626085241624.png
├── 公务员
│   ├── 常识
│   │   └── 法律
│   │       ├── 公务员法.md
│   │       ├── 刑法.md
│   │       ├── 劳动合同法.md
│   │       ├── 劳动法.md
│   │       ├── 宪法.md
│   │       ├── 民法.md
│   │       └── 行政法.md
│   └── 言语
│       └── 词义解析.md
└── 博客
    └── 博客搭建.md

博客文章存放在 blog/posts 目录下,posts 目录下的每一个文件夹即为分类,文件夹下的 .md 文件即为文章。

  • 文件夹代表文章的标签
  • 文件的名字为文章标题
  • 文件的修改时间为归档时间
  • posts下的assets存放md文档的照片

首页面显示:

Node.js个人博客-LMLPHP

显示的标签:

Node.js个人博客-LMLPHP

显示的归档:

Node.js个人博客-LMLPHP

文章样式:

Node.js个人博客-LMLPHP

修改项目根目录下的README.md即可直接修改关于页面。

这似乎是一个很平常的博客系统,但是我们可以做一些配置,同步到我们的服务器上,让我们不需要做额外的操作,它自动完成文件的上传。

2. 项目基本配置

项目对新手很友好,只需要修改config.js中配置,即可直接编写md文档使用,在设置ssh后本地posts文件夹中的文件会同步到配置的服务器。

// config.js
const path = require('path');

module.exports = {
    ---
    ssl: {
        // 本地生成ssl证书,测试
        // openssl req -x509 -newkey rsa:4096 -keyout private.key -out certificate.crt -days 365
        darwin: {
            key: './ssl/private.key',
            cert: './ssl/certificate.crt'
        },
        // 服务器上的ssl证书
        linux: {
            key: '/etc/nginx/ssl/ximingx.org.cn.key',
            cert: '/etc/nginx/ssl/ximingx.org.cn.crt'
        }
    },
    ssh: {
        localPosts: path.join(__dirname, './posts'),
        // 服务器ip地址
        remoteHost: '0.0.0.0', //不设置,默认不启动服务器
        user: 'root',
        remotePath: '/root/blog/posts',
        // 需要与服务器配置好ssh免密登录
        privateKey: '/Users/ximingx/.ssh/id_rsa'
    },
    ---
};

2. 博客的搭建

1. 本地部署

打开本地终端,执行以下命令:

git clone https://github.com/ximingx/blog.git
cd blog
npm install
npm run dev

启动成功后,打开浏览器,访问 https://localhost 即可查看博客。

2. 服务器部署

CentOS系统上安装Node.js和npm

curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash - sudo yum install -y nodejs

使用 zip 和 unzip 命令来压缩和解压缩文件。

# 本地操作
# 压缩blog
zip -r blog.zip ./blog
# 复制本地文件到服务器
scp /Users/ximingx/Downloads/blog.zip root@服务器ip地址:/root  #然后输入自己的秘密

# 进入服务器
ssh -p 22 username@remotehost

# 进入到服务器后
unzip blog.zip
# 进入项目
cd blog 
# 安装依赖,启动项目
npm i
pm2 start app.js
# 设置PM2开机自启
pm2 startup systemd
# 保存当前的PM2进程列表,确保重启后能恢复:
pm2 save

# 补充
# sudo rm -r /path/to/your/directory 可以用来删除文件夹目录
06-30 19:22