golang123 - 使用 vue、nuxt、node.js 和 golang 开发的社区系统

待兔
• 阅读 1346

===

Golang123

golang123 是一个开源的社区系统,界面优雅,功能丰富,小巧迅速。

已在[golang中文社区](https://www.golang123.com) 得到应用,你完全可以用它来搭建自己的社区。

golang123的技术架构是前后端分离的, 前端使用**vue**、**iview**、**node.js**、**nuxt**等技术来开发, 后端使用**go**、**gorm**、**iris**等技术来开发。golang123的技术选型也是超前的, 我们大胆得使用**nuxt**来做**前后端同构渲染**。

💎 社区首页

🚀 安装

依赖的软件

node.js: 8.4.0 及以上

golang: 1.9 及以上

mysql: 5.6.35 及以上

redis: 4.0.1 及以上

克隆代码

将`golang123`的代码克隆到gopath的src/github.com/shen100目录下,即`your/gopath/src/github.com/shen100/golang123`

前端依赖的模块

进入`golang123/website`目录,输入命令

```

npm install

```

如果安装失败,或速度慢,可尝试阿里的镜像

```

npm install --registry=https://registry.npm.taobao.org

```

后端依赖的库

```

//iris web框架

go get -u github.com/kataras/iris

//gorm 持久层框架

go get -u github.com/jinzhu/gorm

//redis客户端工具

go get github.com/garyburd/redigo/redis

//uuid生成工具

go get github.com/satori/go.uuid

//防XSS攻击

go get -u github.com/microcosm-cc/bluemonday

//markdown解析器

go get github.com/russross/blackfriday

```

⚙️ 配置

hosts

127.0.0.1 dev.golang123.com

nginx

1.将`golang123/nginx/dev.golang123.com.example.conf`文件改名为`dev.golang123.com.conf`,然后拷贝到nginx的虚拟主机目录下

2.将`golang123/nginx/server.key`和`golang123/nginx/server.crt`拷贝到某个目录下

3.打开nginx的虚拟主机目录下的`dev.golang123.com.conf`文件,然后修改访问日志和错误日志的路径,即修改access\_log和error\_log。

4.修改证书路径为server.key和server.crt所在的路径,即修改ssl_certificate和ssl\_certificate\_key

请参考如下配置中`请修改`标记的地方:

```

server {

listen 80;

server_name dev.golang123.com;

access_log /path/logs/golang123.access.log; #请修改

error_log /path/logs/golang123.error.log; #请修改

rewrite ^(.*) https://$server_name$1 permanent;

}

server {

listen 443;

server_name dev.golang123.com;

access_log /path/logs/golang123.access.log; #请修改

error_log /path/logs/golang123.error.log; #请修改

ssl on;

ssl_certificate /path/cert/golang123/server.crt; #请修改

ssl_certificate_key /path/cert/golang123/server.key; #请修改

...

}

```

前端配置

将`golang123/website/config/index.example.js`文件重命名为`index.js`

后端配置

将`golang123/config.example.json`文件重命名为`config.json`,然后修改以下配置:

1.修改mysql连接地址及端口

2.修改mysql的用户名及密码

3.修改redis的连接地址及端口

4.修改域名邮箱的用户名及密码(golang123使用的是QQ域名邮箱)

🚕 运行

运行前端项目

进入`golang123/website`目录,然后运行

```

npm run dev

```

运行后端项目

进入`golang123`目录,然后运行

```

go run main.go

```

访问

浏览器中访问 https://dev.golang123.com/

❓问题

有任何问题或建议都欢迎提 issue

👥 技术交流

QQ群: 32550512

QQ群中的消息很可能还没被看到,就被后来的消息给冲掉,有问题还是建议大家开issue

License

GPL

Copyright (c) 2013-present, shen100

点赞
收藏
评论区
推荐文章
秃头王路飞 秃头王路飞
5个月前
webpack5手撸vue2脚手架
webpack5手撸vue相信工作个12年的小伙伴们在面试的时候多多少少怕被问到关于webpack方面的知识,本菜鸟最近闲来无事,就尝试了手撸了下vue2的脚手架,第一次发帖实在是没有经验,望海涵。languageJavaScript"name":"vuecliversion2","version":"1.0.0","desc
blmius blmius
1年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
技术小男生 技术小男生
5个月前
linux环境jdk环境变量配置
1:编辑系统配置文件vi/etc/profile2:按字母键i进入编辑模式,在最底部添加内容:JAVAHOME/opt/jdk1.8.0152CLASSPATH.:$JAVAHOME/lib/dt.jar:$JAVAHOME/lib/tools.jarPATH$JAVAHOME/bin:$PATH3:生效配置
光头强的博客 光头强的博客
5个月前
Java面向对象试题
1、请创建一个Animal动物类,要求有方法eat()方法,方法输出一条语句“吃东西”。创建一个接口A,接口里有一个抽象方法fly()。创建一个Bird类继承Animal类并实现接口A里的方法输出一条有语句“鸟儿飞翔”,重写eat()方法输出一条语句“鸟儿吃虫”。在Test类中向上转型创建b对象,调用eat方法。然后向下转型调用eat()方
Jacquelyn38 Jacquelyn38
1年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
刚刚好 刚刚好
5个月前
css问题
1、在IOS中图片不显示(给图片加了圆角或者img没有父级)<div<imgsrc""/</divdiv{width:20px;height:20px;borderradius:20px;overflow:h
小森森 小森森
5个月前
校园表白墙微信小程序V1.0 SayLove -基于微信云开发-一键快速搭建,开箱即用
后续会继续更新,敬请期待2.0全新版本欢迎添加左边的微信一起探讨!项目地址:(https://www.aliyun.com/activity/daily/bestoffer?userCodesskuuw5n)\2.Bug修复更新日历2.情侣脸功能大家不要使用了,现在阿里云的接口已经要收费了(土豪请随意),\\和注意
晴空闲云 晴空闲云
5个月前
css中box-sizing解放盒子实际宽高计算
我们知道传统的盒子模型,如果增加内边距padding和边框border,那么会撑大整个盒子,造成盒子的宽度不好计算,在实务中特别不方便。boxsizing可以设置盒模型的方式,可以很好的设置固定宽高的盒模型。盒子宽高计算假如我们设置如下盒子:宽度和高度均为200px,那么这会这个盒子实际的宽高就都是200px。但是当我们设置这个盒子的边框和内间距的时候,那
Stella981 Stella981
1年前
MacOS VSCode 安装 GO 插件失败问题解决
0x00问题重现Installinggolang.org/x/tools/cmd/guruFAILEDInstallinggolang.org/x/tools/cmd/gorenameFAILEDInstallinggolang.org/x/lint/golintFAILEDInst
Stella981 Stella981
1年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid