Skip to content

songquanpeng/blog

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
bin
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

中文 | English

个人博客系统

基于 Node.js 的个人博客系统

license release release docker pull

截图展示 · 在线演示 · 部署教程 · 意见反馈

描述

技术栈:Express.js(服务端)+ Sequelize(ORM) + React(后台)+ Ant Design(后台 UI 库)

特点:

  1. 支持多种主题。
  2. 支持多种页面类型,文章页面、HTML 页面、链接页面等等。
  3. 无需配置数据库,开箱即用(如果你不想用 SQLite,请修改 config.js 配置文件)。
  4. 内置 ACE 代码编辑器,附带多种代码主题(包括 Solarized Light)。
  5. 支持通过 Docker 部署,详见此处

主题

  1. Bulma:Bulma CSS 风格主题,内置的默认主题。
  2. Bootstrap:Bootstrap 风格主题(推荐使用)。
  3. W3:W3.css 风格主题
  4. V2EX: V2EX 风格主题
  5. Next: Hexo Next 风格主题
  6. Bootstrap5: 借鉴自 CodeLunatic/halo-theme-simple-bootstrapBootstrap5 风格主题

注意:

  1. 如需更改主题,打开后台管理系统中的 setting 页面,下拉框中找到 theme,修改后点击 submit,记得浏览器 Ctrl + F5 刷新缓存。
  2. 由于精力有限,部分主题可能由于未能及时随项目更新导致存在问题。

演示

在线演示

  1. JustSong 的个人博客 (可能并非最新版本).
  2. Render App (后台管理系统地址 默认用户名 admin 以及密码 123456)

截图展示

桌面端首页 后台管理页面文章列表页面 编辑器页面

部署

通过 Docker 部署

执行:docker run -d -p 3000:3000 -v /home/ubuntu/data/blog:/app/data -e TZ=Asia/Shanghai justsong/blog

开放的端口号为 3000,之后用 Nginx 配置域名,反代以及 SSL 证书即可。

数据将会保存在宿主机的 /home/ubuntu/data/blog 目录(数据库文件和上传的文件)。

如果想在网站根目录上传文件,则在该目录下新建一个 index 文件夹,里面可以放置 favicon.ico, robots.txt 等文件,具体参见 data/index 目录下的内容。

更新博客版本的流程:

# pull new images
docker pull justsong/blog
# stop old container
docker stop id
# start new container
docker run -d -p 3000:3000 -v /home/ubuntu/data/blog:/app/data -e TZ=Asia/Shanghai justsong/blog

通过源码部署

git clone https://github.com/songquanpeng/blog.git
cd blog
# 获取主题
git submodule init
# 更新主题
git submodule update
# 安装依赖
npm install
# 编译后台管理系统
npm run build  # Windows 用户请运行 `npm run build2`
# 启动服务
npm start
# 推荐使用 pm2 进行启动
# 1. 安装 pm2
npm i -g pm2
# 2. 使用 pm2 启动服务
pm2 start ./app.js --name blog