Categorygithub.com/Monkey-Mouse/mo2
modulepackage
0.0.0-20221028095223-bef4ad1ff22c
Repository: https://github.com/monkey-mouse/mo2.git
Documentation: pkg.go.dev

# README

Mo2

codecov gobadge made-with-Go GitHub go.mod Go version of a Go module GoReportCard BCH compliance license
一个属于所有人的博客网站 www.motwo.cn
logo

Why

在现在的网络上,有众多的公开博客网站,大家可以在上边发表自己的文章。

但是这些网站都更新的很慢,风格千篇一律,很多用户想要的功能无法及时添加,用户无法获取自己真正最想要的体验。

同时,大部分博客网站用户是希望能建造自己的个人博客的,或者说用户希望使用一个自己建造的博客。然而大部分人没有精力这么做,即使有word press这样的框架帮助,能自建博客的人任然很少,何况word press建造的基础网站本身也存在很多问题。

所以我们的项目就是为了解决这个问题而诞生:我们意图打造一个开源的博客系统,使用持续集成和持续部署技术,吸引有想自己设计自己的博客的用户为我们的仓库提交代码。在用户的代码被接受并合并到生产分支后,我们的持续部署技术会在10分钟以内更新我们的服务器,让用户看到自己的更改,同时我们会记录下贡献者的信息,对他们进行鸣谢。让所有参与网站开发的人都有成就感。

所以其实这个项目只有一小半是博客,一大半是社区。我们的目标是靠这个项目的特性吸引高质量用户,形成社区,将MO2建设为

A blog site made for everyone, and made by everyone

项目结构

如你所见,最外层是一个go项目,我们的前端项目在mo2front目录下。我们的计划是让每个重要的文件夹下 都有个readme文件。

运行项目

运行项目有两种方法,第一种是使用docker,第二种是从源码进行编译。

使用docker

参见mo2-compose项目

从源码编译

先决条件

  • go 1.16
  • 尽可能新的 npm 包管理工具
  • 尽可能新的 mongodb
  • 5.x-6.x的redis

编译服务器

Mo2是微服务架构。它的架构图如下:
arch
因此,如果想从源码运行Mo2需要先准备好所有依赖的微服务

0.设置环境变量

想要正确运行Mo2需要提前配置一些环境变量。如果缺少环境变量可能导致后端部分功能不可用或者无法启动。

  • MO2_MONGO_URL,mongodb地址,配置见1.
  • REDIS_UR,redis地址,配置见1.
  • qiniuak=xxx设置七牛的access key,缺少将无法使用图片上传相关功能
  • qiniusk=xxx设置七牛的secret key,缺少将无法使用图片上传相关功能
  • emailAddr=xxx Email地址
  • emailPass=xxx Email smtp密码
  • MO2_SEARCH_HOST=xxx Mo2搜索服务地址,缺少将无法使用搜索功能
  • COMMENT_LOG=mo2notificationlog:9990 评论相关log功能的地址,缺少将导致评论相关功能不可用
  • MO2_DATABASE=xxx 指定Mo2使用的数据库名称
  • LOG_COL=notificationLog 指定log服务的Collection
  • LOG_PORT=9990 指定log服务的端口

1.准备数据库服务

首先,我们需要确保你的mongodb已经在运行。
然后,我们需要把你的mongodb地址导出到环境变量中, 如果您的mongodb是默认配置的话,你可以使用以下命令:
linux bash:

export MO2_MONGO_URL=mongodb://127.0.0.1:27017

windows powershell:

$env:MO2_MONGO_URL=mongodb://127.0.0.1:27017

之后,我们需要用同样的步骤配置redis
首先确保redis的运行状态
然后如果您的redis是默认配置的话,您可以使用以下命令:
linux bash:

export REDIS_URL=localhost:6379

windows powershell:

$env:REDIS_URL=localhost:6379

2.准备其它微服务

2.1 Mo2 Search
Mo2的搜索服务。首先,拉取仓库

git clone [email protected]:Monkey-Mouse/mo2search.git

然后,编译它,运行。
2.2 Mo2 Log Mo2的log服务。首先,拉取仓库

git clone [email protected]:Monkey-Mouse/mo2log.git

然后,编译它,运行。

运行主服务

然后,使用同一个终端,在项目根目录:

go run main.go

即可运行后端

注意 这样运行后端有部分功能不能使用。包括:

  • image upload相关功能
  • email发送相关功能

使用这些功能需要预先设定特殊的环境变量

编译前端

在项目根目录打开一个终端,然后切换到mo2front目录

cd ./mo2front/

然后,使用npm进行install:

npm install

最后,运行前端

npm run serve

根据命令行提示打开对应的网页就可以看到前端页面

注意 Mo2在默认配置下,前端的运作并不要求本地运行后端,我们的设置会让npm在本地进行代理,将请求代理到我们的生产环境的服务器上。如果你想更改这项设置,请更改vue.config.js

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author