Flybook3.0 轻量级网站框架| 专为博客而生

小鸡
阅读502喜欢6·flybook发表2019-12-06更新2019-12-13
前言:这个网站框架断断续续完善了有半年,一开始是自己用,所以很多地方都写得很懒散,最近想着要不要完善一下,做成一个别人也可以轻松使用得博客框架。于是便有这个版本,主要更新在于数据库替换为本地存储,多用户模式,在线后台与站点设置

轻量级的网站,这个是我一直自己做博客框架的原因,需要什么就添加什么,不需要就不添加,不像那些第三方的网站框架,你打开源代码看到的是一堆没用到的资源。Flybook后台基于nodejs,纯js制作,无数据库,使用本地json数据存储代替数据库。

为什么不用数据库而使用json文件存储数据?因为我觉得作为一个博客,其实内容的更新频率并不大,并且文章数量并不是很多,作为一个高产的博主,一年能写七八十篇文章已经是极限了,所以数据库的需求其实并不是很大。本地文件存储已经足够了(我本来还想自己造个json数据库的轮子,不过发现网上有现成的lowdb)就直接用lowdb了。

项目地址:https://github.com/flymysql/flybook.git

2019-12-13更新

邮件通知及本地数据库

安装Flybook

所以这就使网站的搭建十分轻松,那么如何使用Flybook呢?以下三步即可完成

  1. 下载Flybook源码
git clone https://github.com/flymysql/flybook.git

2. 下载三方插件

npm install

或者也可以使用cnmp

3. 运行博客

npm run pmstart

如果是在Windows本地搭建测试,打开浏览器访问localhost:3000 即可查看效果,首页效果如下,默认主题的UI风格模仿简书


配置站点

如何配置自己的站点信息呢?有两种方式,一种是在项目文件中打开config.js进行修改,可修改里面的站点信息,修改后重启站点即可,重启方式

npm run pmrestart


另一种方式是登陆网站后台,在设置页面进行修改,但是修改后同样需要重启站点


可配置的信息有

module.exports ={
// 站点信息
seo:{
title:"兰州小红鸡",
index:"https://me.idealli.com",
keywords:"兰州小红鸡,博客,技术博客,写作,阅读",
description:"兰州小红鸡的博客,代码记录成长",
},
// 用户配置
users: [
{name: "小鸡", password: "123456"},
{name: "Valky", password: "123456"}
],
// 作者信息
author:{
"佚名": {
head_img:"/images/head.png",
blog_name: "佚名",
header_logo: "/images/headerico.png",
logo: "logo4.png"
},
"小鸡": {
head_img:"/images/head.png",
blog_name: "小鸡",
header_logo: "/images/headerico.png",
logo: "logo4.png"
}
},
// 站点信息
options:{
avatar:"/images/avatar.jpg",
nickname:"兰州小红鸡",
description:"桃李春风一杯酒,江湖夜雨十年灯",
ICP:"闽ICP备18025365号",
copyright:"© 2018"
},
// valine评论插件
valine:{
app_id: "",
app_key: ""
},
// 首页轮播图设置
carousel:[],
// 首页侧边栏
index_aside: [],
// 首页友链
friends:[],
// 标签云
tags: [],
// 页脚菜单栏
footer_menu:[]
}

多用户模式

如上面配置所见,只要你在配置文件里面添加相应用户的账号密码,且添加相应用户信息(头像,名称,logo等)即可使用不同的用户进行文章写作,当然由于博客这种私人内容,用户权限我这里又设置得很均等,所以建议只在亲密的人之间共用博客(比如和女朋友)



文章存储

站点文章将被存储在server/db/post.json中,建议设置脚本定期备份。

其实这次的更新主要就是将数据库换成json文件存储,虽然工作量还是蛮大的,但一句话就可以概括了。

更新升级

由于博客还在开发阶段,每天都会有大量更新和改动
所以写了个升级脚步,用于本地更新
npm run update

更新之后可以重启站点
npm run pmrestart

邮件通知功能

这里我是使用NodeMailer发送邮件,简单参考这里node发送邮件,使用nodemailer插件即可简单地实现邮件发送地功能,还是挺有趣的。这个博主的文章里面已经说的比较详细了,我就不再展开说怎么实现了,这里简单讲一下在flybook里面如何使用这个邮件发送功能。

首先你需要一个用来发送邮件的邮箱,并且获取授权码。这里以qq邮箱为例。

登录你的qq邮箱,然后在账户设置里面开启这个SMTP设置



开启之后会给你一个授权码,复制这个授权码,然后在flybook的站点设置文件(config.js)中填写该授权码。即可完成。

email_auth:{
// 用来发送消息的邮箱
name: "小鸡",
id: "你的邮箱",
key: "你的授权码",
},

当然你还需要在作者配置里面填写作者邮箱,这样有人评论不同作者的文章,就会给不同的作者发送邮件

// 作者信息
author:{
"佚名": {
head_img:"/images/head.png",
blog_name: "佚名",
header_logo: "/images/headerico.png",
logo: "logo4.png", // 作者接收消息的邮箱 email: ""
},
},


然后就可以愉快地使用本地地评论功能,并且实时接收邮件提醒,不需要任何第三方的服务,本地js代码就可以实现了。

配置域名

使用nginx反向代理

安装nginx,安装方法自行百度

配置nginx配置文件

  1. 配置Nginx,使得访问域名时候转到http://localhost:3000处理请求,配置文件如下,记得把域名改成自己的:

server {
listen 80;
server_name me.idealli.com;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}

配置后重启Nginx,service nginx restart

当然,还有个最简单的方法是让应用监听80端口,前提是你的服务器没有其他网站在运行。修改端口在项目的/bin/www文件下

更多细节也可以看"Flybook1.0"的时候的使用

Flybook-用node.js从零开始搭一个简约而不简单的博客站点


随想
博客
机器学习
教程
邻家酒肆
前端
深度学习
算法
小程序
资源
cpp
html
javascript
python
sql
node
wordpress

最近文章