基于 Node.js 的个人开源博客系统
个人博客 http://iblue.tech/
- 文章列表页
- 文章详细页
- 网站统计
- 博客管理 - 新的文章
- 博客管理 - 分类管理
- 博客管理 - 文章管理
- 评论管理
- 留言管理
- 关于管理
- 缓存管理
- 异常管理
- 系统设置
- 服务端 Node.js
- web框架 Express 4
- 模板引擎 Saker (master分支) / Jade (Jade-template分支)
- JS库 jQuery
- UI库 Bootstrap 3
- 持久化 MongoDB
- 缓存(可选) Redis
- 日志 winston
安装最新版Node.js、bower、MongoDB、Redis(可选)。
(注:如果使用Windows平台,可以去https://github.com/MSOpenTech/redis/releases下载安装Redis)
- 服务端依赖
$ npm install
- 客户端依赖
$ bower install
根据实际情况修改 config.json 配置文件,DbPath 是 MongoDB 路径,Redis 是缓存配置,Redis.Active 表示是否启用Redis缓存(默认不开启),Redis.Host 表示 Redis 服务器 ip 地址,Redis.Port 表示 Redis 端口号。
{
"DbPath": "mongodb://localhost/iblue",
"Redis": {
"Active": false,
"Host": "127.0.0.1",
"Port": 6379
}
}
后台管理员账号信息在 config/account.json 中配置,默认管理员账号 admin ,密码 123456 ,密码需md5加密存储。
{
"Id": "1",
"UserName": "admin",
"Password": "e10adc3949ba59abbe56e057f20f883e"
}
在 "后台管理-系统设置" 页面中,支持以可视化方式配置其余参数。
注意:对于node v4及以下版本,需要添加 --harmony-proxies 参数。
- 方式1:普通模式启动
$ node ./bin/www
- 方式2:快速启动
$ npm start
- 方式3:守护进程启动
守护进程能够发挥多核CPU性能,并在出现异常退出后延迟30秒自动重启工作进程。
$ node daemon.js
打开浏览器,访问 http://localhost:19031/
文章分类、文章列表、文章详细等都作了缓存处理,若想使修改立即可见,需要在"后台管理-缓存管理"页面手动清除缓存。
推荐使用 pm2 进行线上Node.js的进程管理和持久运行。
$ npm install -g pm2
$ pm2 start ./bin/www
The MIT License (MIT)
Copyright (c) 2018 Bingmang
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.