Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/2fps/blooog
基于material-ui+react+koa2+mongodb的个人博客系统
https://github.com/2fps/blooog
blog koa2 material-ui mongodb mongoose react react-redux react-router redux-thunk typescript
Last synced: 10 days ago
JSON representation
基于material-ui+react+koa2+mongodb的个人博客系统
- Host: GitHub
- URL: https://github.com/2fps/blooog
- Owner: 2fps
- License: apache-2.0
- Created: 2019-01-23T11:29:17.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2022-12-22T09:40:28.000Z (about 2 years ago)
- Last Synced: 2024-10-31T18:24:30.759Z (about 2 months ago)
- Topics: blog, koa2, material-ui, mongodb, mongoose, react, react-redux, react-router, redux-thunk, typescript
- Language: JavaScript
- Homepage:
- Size: 1.33 MB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# blooog
blooog
基于material-ui + react + koa2 + mongodb的个人博客,目前仍在开发中,只有很简单的功能。技术栈:
UI: material-ui、toastr(全局提示组件)、semantic-ui-react(pagination组件)。
JS:React、react-router、redux、redux-thunk。
服务端: koa2 (将逐步替换ts)。
数据库: mongodb(mongoose)。demo地址:http://132.232.131.250:3000 admin / admin
上域名太麻烦了,请轻测。主要目的:
1. 练习无法在工作中使用的技术栈。
2. 可能的话,替换掉现在的博客系统。文档详细地址:https://www.kancloud.cn/fps_2fps/test1/937003
API详细地址:https://www.showdoc.cc/234860389352945?page_id=1338365306594574
修改记录地址:https://www.kancloud.cn/fps_2fps/test1/961710
问题记录:https://www.kancloud.cn/fps_2fps/test1/973491## 已实现功能
1. 文章的增删改查。
2. 标签的增删改查。
3. 站点配置。
4. 加密登录和修改密码功能。## fontEnd
此文件夹下存放的是前端代码。### 安装依赖
```
cd fontEnd
npm install
```
### 启动开发环境
```
npm run start
```
浏览器中访问 http://127.0.0.1:3000/### 修改代理服务器地址
由于使用了create-react-app脚手架,所以只要在package.json中的proxy字段中输入代理的url路径即可(最新版的3.0只支持字符串了)。### 编译生成静态资源
```
npm run build
```## backEnd
此文件夹下存放的是服务端代码。### 服务器启动
我是在window下开发的,在mongodb安装目录的bin目录下启动powershell或者cmd,输入 ./mongod.exe --dbpath D:/data/ (我是选择D盘的data文件夹存放数据的)。### 默认基础配置
在config文件夹下的config.js中,可以设置默认用户的账户名和密码(服务器启动后会写入数据库),请启动前修改,或启动后修改密码。
更多配置修改和设置在后期提供。### 安装依赖
```
cd backEnd
npm install
```
### 启动开发环境
```
npm run start
```
服务端的端口是8000,可自行修改。### 数据库
使用到的数据库是mongodb,window下的mongodb下载路径如下:http://dl.mongodb.org/dl/win32/x86_64。
本人使用的是3.4.19版本的,并使用了robomongo可视化工具。
可视化工具下载地址:https://robomongo.org/download。
生产环境中的是在ubuntu下安装的。## 生产环境搭建
本人是在ubuntu16.04下搭建的。### 安装mongodb
```
sudo apt update
sudo apt install mongo -ymongo -version
```
如果能出现对应的版本,那么就安装成功了,本人服务器上安装的是2.6.10版本。
安装完后的数据库默认是启动的。### 启动koa2
本人是在服务端直接clone github上的代码,并启动node程序的。#### 安装git
```
sudo apt-get install git
// 配置git账户
git config --global user.name "xxx"
git config --global user.email "你的邮箱地址"
```#### 安装node与npm
```
sudo wget https://nodejs.org/dist/v11.9.0/node-v11.9.0-linux-x64.tar.xz
sudo tar -xvf node-v11.9.0-linux-x64.tar.xz
sudo mv node-v11.9.0-linux-x64 /usr/local
sudo ln -s /usr/local/node-v11.9.0-linux-x64/bin/node /usr/local/bin/node
sudo ln -s /usr/local/node-v11.9.0-linux-x64/bin/npm /usr/local/bin/npmnode -v
npm -v
```node与npm都能输出正确的版本的话,即安装正确了。
#### 获取代码并启动服务
本人在/home/目录下克隆了github仓库中的代码。
```
sudo git clone https://github.com/2fps/blooog.git
cd blooog/backEnd/ && sudo npm install
sudo npm install pm2 -g
sudo ln -s /usr/local/node-v11.9.0-linux-x64/bin/pm2 /usr/local/bin
npm run prd
```### 安装nginx并配置
前端build出的代码给nginx做静态资源的代理,而api则被代理到其他koa2的端口上。
```
sudo apt-get install nginx -ycd /etc/nginx/sites-enabled/
sudo touch web
sudo vi web
```
将nginx的配置修改为:
```
server {
listen 3000;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 6;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css;location / {
root /home/resource;
index index.html index.htm;
}location /api {
proxy_redirect off;
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8000/api;
}
}
```重启nginx
```
sudo server nginx restart
```#### 上传静态资源
本人是在本地build前端的资源文件,再上传到服务端上的。没有安装ftp,所以使用了rz命令。
进入build目录,压缩成 ***.zip,再用unzip命令进行解压。
```
sudo apt-get install lrzsz
sudo apt-get install unzip
```
安装完命令后,cd到 /home/resource 文件夹下,没有的话,请先创建。
接着选中需要上传的压缩文件。
```
sudo rz
suzo unzip ***.zip
```## 最后一步
此时在浏览器的地址栏中输入,http://ip:3000 (自己有域名的话,可以挂上),可以访问到blooog了。
如果使用admin/admin密码的请登录后,再右上角点击修改密码。
为了博客的一些功能的正常使用,请在设置中增加正确的配置。刚起步,其他功能正在加入或优化。
Have Fun!