基于 Node.js 的开源个人开源博客系统,采用响应式布局,支持手机访问,功能全面,美观大方。
不仅仅是博客,更是 Demo,是适合新人入门学习的完整项目。
(基于 ASP.NET 的版本见 这里)
整理了 iBlog2 中涉及 Node.js 及部分前端技术的知识点,适合新手学习、备查。
- 文章列表
- 支持搜索
- 创新的竖向分页
- 文章详情
- 自动生成目录
- 支持评论 (基于畅言)
- 留言
- 关于
- 后台管理
- 网站统计
- 博客管理 - 新的文章 (支持 UEditor 和 Markdown 编辑器)
- 博客管理 - 分类管理
- 博客管理 - 文章管理
- 评论管理
- 留言管理
- 关于管理
- 缓存管理
- 异常管理
- 系统设置
- 服务端 Node.js
- web框架 Express 4
- 模板引擎 Pug
- JS库 jQuery
- UI库 Bootstrap 3
- Web字体 Font Awesome
- 持久化 MongoDB
- 缓存(可选) Redis
- 日志 winston
- 多语言 i18n
- 身份验证 Passport
安装 Node.js (v6 以上版本)、MongoDB、Redis(可选)。
(注:如果使用Windows平台,可以去https://github.com/MSOpenTech/redis/releases下载安装Redis)
$ npm install
$ gulp
打开浏览器,访问 http://localhost:3000/
根据实际情况修改 /config.json
配置文件,修改后需要重启服务器。参数说明:
Object 类型,SSL 安全设置。
Boolean 类型,是否创建 HTTPS 站点。
String 类型,私钥文件路径。
String 类型,证书文件路径。
String 类型,MongoDB 连接字符串。
Object 类型,Redis 缓存设置。
Boolean 类型,是否启用缓存功能。
String 类型,Redis 服务器host。
Number 类型,Redis 服务器端口号。
后台管理员账号信息在 /config/account.json
中配置,修改后需要重启服务器。参数说明:
String 类型,管理员账号唯一标识。
String 类型,管理员账号的用户名。
String 类型,管理员账号的密码,必须是32位 md5 加密后的字符串。
初始管理员账号:admin/123456
以管理员身份登录后台 http://localhost:3000/admin ,在系统设置页面,支持以可视化方式配置相关参数,修改参数后不需要重启。
gulp server
启动本地开发服务器。
gulp minify-js
进行Babel编译并压缩js脚本。
gulp minify-css
进行css压缩。
gulp watch
监听资源文件改动并自动执行 minify-js
和 minify-css
任务。
gulp default
默认任务,自动启动服务器,并进行一次js和css压缩,并开启文件改动监听。
如果开启了缓存功能,在缓存有效期内,文章分类、文章列表、文章详细等数据都将从缓存中获取,若想使修改立即可见,你需要在 "后台管理 - 缓存管理" 页面手动清除相关缓存。
iBlog2 自带的守护进程能够利用多核 CPU 性能,并在出现异常退出后自动重启服务。
$ NODE_ENV=production node daemon.js
推荐使用 pm2 进行 Node.js 的进程管理和持久运行,其基本原理与上述守护进程一致。
$ npm install -g pm2
$ NODE_ENV=production pm2 start bin/www -i 0
noginx 是基于 Node.js 的 HTTP 及反向代理服务器(类似 nginx),如果你有多台 iBlog2 服务器实例,你可以使用 noginx 进行代理转发和负载均衡。
感谢给 iBlog2 项目贡献代码的朋友,感谢他们的支持,详情 点击这里。
The MIT License (MIT)
Copyright (c) 2016 Sky
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.