• Node.js个人博客


    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文档的照片

    首页面显示:

    在这里插入图片描述

    显示的标签:

    在这里插入图片描述

    显示的归档:

    在这里插入图片描述

    文章样式:

    在这里插入图片描述

    修改项目根目录下的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 可以用来删除文件夹目录
    
  • 相关阅读:
    (十九)STM32——输入捕获
    算法分析——大O标记法之时间复杂度
    2.1、物理层的基本概念
    Android Compose 入门,深入底层源码分析
    聊一聊Redis的RDB快照
    k8s使用ECK(2.4)形式部署elasticsearch+kibana-http协议
    【前端必会】使用indexedDB,降低环境搭建成本
    【Java基础知识 46】GET和POST的区别,java模拟postman发post请求
    【Linux】(五)GateWay远程开发方式-实验室服务器使用GateWay远程开发
    【Java设计模式 规范与重构】 一 重构的目的、内容、时机、方法
  • 原文地址:https://blog.csdn.net/ximing020714/article/details/139989793