• Stars
    star
    203
  • Rank 192,890 (Top 4 %)
  • Language
    Go
  • License
    MIT License
  • Created almost 6 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Golang写的一些基础后端服务,基本包含大多数后端需要的服务

ci Coverage Status Go Report Card License Repo Size

Golang 实现的基础服务

这是我在闲暇时间写的一些基础服务, 基本上大多数后端服务都需要用到的。

它用来帮助我快速开始一个项目,而不是重头开始写,浪费大量时间和精力。

想到哪里写哪里, 我会不断的完善它。

为什么不写成微服务形式,模块分离? 项目体量没有达到。

技术栈

  • Web 框架 iris
  • 数据库 Postgres
  • 缓存 Redis
  • 身份认证机制 Session/JWT/oAuth2
  • 数据库操作 GORM
  • 消息队列 nsq
  • RBAC 的鉴权模型
  • Docker 一键启动应用

包含哪些模块?

模块 说明
验证模块 包含注册/登陆/账号激活/忘记密码/双重身份认证
用户模块 包含用户信息的模块, 用户资料/登陆密码/扫码登录/交易密码/用户邀请
授权模块 oAuth 授权登陆, 目前支持 微信小程序/Google/Github/Gitlab/Twitter/Facebook
钱包模块 包含钱包的相关操作,钱包转账/结算
财务模块 所有涉及到钱的的操作都会被记录在此, 例如转账记录/消费记录
横幅模块 对于网站相关 Banner 的操作,可根据不同的平台设置不同的横幅,例如 PC 端大屏的与 APP 不相同
新闻模块 新闻公告类的相关操作, CMS 内容
系统通知 系统通知的相关模块,主要用于管理员发送给全员的通知
消息模块 用户的个人消息模块, 主要用于管理员发送给某个用户的通知
推送模块 APP 的推送通知模块,接入第三方 onesignal
地区模块 包含全国各地区的行政码划分等
地址模块 用户设置相关的地址模块,例如收货地址
上传模块 包含用户上传文件/图片的相关操作, 包含 hash 去重/图片压缩/图片缩放/图片裁剪
下载模块 包含用户下载文件/图片的相关操作
邮件模块 关于邮件的相关操作,例如发送邮件, 用于发送验证码之类
短信模块 用于发送短信验证码,接入第三方服务阿里云/腾讯云
静态文件模块 用户访问服务器的静态文件, 放置与 /public 目录下的文件
反馈模块 用户反馈模块,用户建议反馈/BUG反馈
页面菜单模块 定义后台页面菜单/页面权限
日志模块 系统日志/登陆日志/操作日志/异常日志
帮助中心 可嵌套的帮助中心模块
配置中心 由后台接口控制的配置中心,配置例如 SMTP/短信/小程序 等信息
定时任务模块 进行一系列的定时任务,例如切割表,迁移冷数据等
客服系统 基于 Websocket 的客服系统,实时消息推送,一对多服务关系

如何使用?

首先搭建项目需要的依赖数据库/服务, 这里推荐使用 Docker

docker 目录中提供了 docker-compose 配置文件,方便一键搭建。

然后获取构建好的可执行文件, 找到对应的平台,并且下载。或者自行构建。

你需要使用 5 个文件

  1. message_queue_server

启用消息队列消费服务器,用于消费在队列里面的事物。

  1. resource_server

静态文件服务器。用于静态文件的上传/下载/缩略图等

  1. user_server

监听用户相关的接口服务

  1. admin_server

监听管理员相关的接口服务

5。scheduled_server

定时任务

  1. customer_service

客服系统

然后复制 .env 到可执行文件目录下,运行可执行文件即可。例如 ./user_server start

快速下载可执行文件

curl -fsSL https://raw.githubusercontent.com/axetroy/go-server/master/install.sh | bash -s v0.5.2

如何进行本地开发?

首选确保你安装有:

再根据以下命令运行

# 克隆项目
$ go get -v github.com/axetroy/go-server # 拉取项目

# 启用项目依赖(数据库,消息队列等)
$ cd $GOPATH/github/axetroy/go-server # 切换到项目目录
$ cd docker
$ ./start.sh

# 启动接口服务
$ cd $GOPATH/github/axetroy/go-server # 切换到项目目录
$ go run ./cmd/admin/main.go migrate # 同步数据库表
$ go run ./cmd/message_queue/main.go # 启动消息队列
$ go run ./cmd/user/main.go # 运行用户端的接口服务
$ go run ./cmd/admin/main.go # 运行管理员端的接口服务
$ go run ./cmd/resource/main.go # 运行资源类的接口服务
$ go run ./cmd/scheduled/main.go # 运行定时任务
$ go run ./cmd/customer_service/main.go # 运行客服系统

可以通过 .env 文件进行配置

如何构建?

$ make build

在生成的 bin 目录下查找对应平台的可执行文件运行即可

如何测试?

make test

鸣谢

特别感谢 JetBrains 为本开源项目提供免费的 IntelliJ GoLand 授权

License

The MIT License

More Repositories

1

sms-boom

利用chrome的headless模式,模拟用户注册进行短信轰炸机
491
star
2

anti-redirect

🚀去除各搜索引擎/常用网站的重定向
TypeScript
457
star
3

vm.js

Javascript 解释器. Javascript Interpreter
TypeScript
421
star
4

blog

📖基于Github API 的动态博客
JavaScript
215
star
5

dvm

🚀 Fast and simple version manger for Deno without runtime dependencies
Go
167
star
6

vscode-changelog-generator

vscode extension to generate changelog.
TypeScript
144
star
7

vscode-deno

Visual Studio Code Deno extension
TypeScript
102
star
8

wsm

🔳Manage you team's server via browser 通过浏览器管理服务器。堡垒机
Go
76
star
9

webuild

零配置, 无侵入式的小程序开发工具
JavaScript
59
star
10

GMscript

GM脚本合集
JavaScript
57
star
11

gin-uploader

Gin 框架的文件上传组件
Go
47
star
12

wxapp-http

微信小程序的http模块,Tiny but Powerful
JavaScript
42
star
13

crawler

nodejs 爬虫框架. crawler framework for nodejs
TypeScript
41
star
14

go-upload

Go 文件上传模块,hash去重/图片缩略图/配置文件,自实现
Go
38
star
15

kost

基于Koa,使用Typescript开发的Web框架
TypeScript
38
star
16

react-codebox

验证码输入框组件
JavaScript
37
star
17

react-download

react component for click and then download the specify content file.
JavaScript
36
star
18

babel-plugin-pre-calculate-number

pre calculate number expression
JavaScript
36
star
19

forward-cli

A command-line tool to reverse proxy any server. 快速反向代理任何网站
Go
31
star
20

watchdog

看门🐶,您的服务状态管家,支持 TCP/FTP/HTTP/WebSocket/SSH 等协议,通过Webhook/微信/邮件等多渠道通知
Go
27
star
21

pag

It mean: Pack And Go. 卷铺盖走人
JavaScript
27
star
22

swagger2ts

💗 从 Swagger 生成优雅的 Typescript 代码. Generate elegant typescript code from swagger.
TypeScript
26
star
23

deno_math

Deno module for high-precision calculations and scientific computing
TypeScript
23
star
24

vscode-movie

在vscode中查看热映电影/热门电影/高分电影/热门剧.
TypeScript
21
star
25

struct

A Modern, Scalable , Graceful, Easy Use data structure validator
JavaScript
20
star
26

vd

我只是视频的搬运工 Video Downloader
TypeScript
20
star
27

vscode-gpm

Manager your git projects with Golang style
TypeScript
20
star
28

wheel-timer.js

Hashed and Hierarchical Timing Wheels Implement
JavaScript
19
star
29

type-up

使用dart构建,GM脚本,敲起来
Dart
18
star
30

vscode-package-manager

vscode extension for managing your Packages that installed in your computer. Support Homebrew/npm/pip/yarn/apt and more
TypeScript
18
star
31

godefer

Golang Defer implement in Javascript
JavaScript
18
star
32

wxapp-socket

用于微信小程序socket通信的封装
TypeScript
17
star
33

wxapp-dev-tool-for-linux

linux版的微信小程序开发工具. 源码与官方一致
Shell
15
star
34

wxapp-storage

简单的微信小程序Storage相关的封装, 特点是安全的数据源, 有效的存储时间
JavaScript
13
star
35

gmock

简约而不简单的 APIs mocker
Go
13
star
36

p2p-chat

简单的实现P2P聊天
JavaScript
13
star
37

docker-configuration

各 Docker 容器常用的配置文件
JavaScript
12
star
38

vscode-nls-i18n

vscode library for supporting i18n
TypeScript
12
star
39

s4

集成本地/远程的工作流 Integrate local and remote workflow
Go
12
star
40

wxapp-promisify

微信小程序wx对象的API,promise化
JavaScript
12
star
41

github-size-badge

badge service for show github repository size.
JavaScript
11
star
42

wxapp-fetch

fetch API implement for WeChat App
JavaScript
11
star
43

vscode-npm-import-package-version

An extension to show npm package's version in you code.
TypeScript
10
star
44

libpack

Build your library without tears.🤣
JavaScript
9
star
45

denox

Execute Deno script even if you don't have Deno installed
Go
9
star
46

deno_free_port

Get free port for Deno
TypeScript
9
star
47

deno_process

process module for Deno
TypeScript
8
star
48

at-promise

promise directive for angular
JavaScript
7
star
49

html_no_print

HTML 页面防止被打印
7
star
50

vscode-markdown-script

A vscode extension to enhanced markdown code block
TypeScript
7
star
51

registry

Generic Registry for Git Repository
TypeScript
7
star
52

go-cli-boilerplate

Golang command line boilerplate
Makefile
7
star
53

gpm.rs

helps you manage hundreds of repository, and it written with Rust
Rust
6
star
54

deno_pkger

General resources packager for Deno
TypeScript
6
star
55

commander.dart

🔧The complete solution for Dart command-line interfaces, inspired by <commander.js>
Dart
6
star
56

prune.v

🚀 An extremely fast tool for prune your file-system written in V
V
5
star
57

redux-zero-persist

redux-zero persist middleware
JavaScript
5
star
58

vscode-comment-autocomplete

An VSCODE extension to autocomplete the comment.
TypeScript
5
star
59

generic-pool

Generic pool for Golang
Go
5
star
60

react-safe-setstate

react component decorator for make sure this.setState() run at safe env. registry setState method with an empty function before unmount.
JavaScript
5
star
61

redux-zero-logger

redux-zero logger middleware
JavaScript
5
star
62

mood.py

判断一句话的情绪,正面/负面/中性
Python
5
star
63

deno_machine_id

Get the unique ID of the current machine
TypeScript
5
star
64

marquee

Marquee component for Vue.js & React.js
TypeScript
5
star
65

kpv

Kill the process listening on the specified port, written in V。根据端口号关闭进程,它小巧,轻量
V
4
star
66

vscode-static-server

vscode extension to serve a static directory
TypeScript
4
star
67

gm-http

Http module for Greasyfork Script
TypeScript
4
star
68

vscode-open-in-browser

open HTML file in browser
TypeScript
4
star
69

event-emitter.dart

A Dart event emitter implementation without any dependencies.
Dart
4
star
70

vscode-http-proxy

A vscode extension to start http proxy server
TypeScript
4
star
71

vscode-auto-schema

An extension support most of JSON Schemas you ever see.
TypeScript
4
star
72

nid

Generate random number id in Golang
Go
3
star
73

greasy-scraper

为 https://greasyfork.org 写的爬虫
JavaScript
3
star
74

react-boilerplate

morden react boilerplate
TypeScript
3
star
75

deno_storage

implementation of localStorage and sessionStorage for Deno
TypeScript
3
star
76

fslint

文件系统命名风格检测工具 File system naming style lint
Go
3
star
77

gesture.js

手势库
TypeScript
3
star
78

wheel-timer

Hashed and Hierarchical Timing Wheels Implement for Go
Go
3
star
79

md5-ls

List of files/directory MD5 value
Go
3
star
80

ts-gmscript-boilerplate

Typescript lib boilerplate for building GM script
JavaScript
3
star
81

walk

walk dir
JavaScript
3
star
82

react-github-calendar

github-calendar wrapper component for react
JavaScript
3
star
83

ng-promise

Angular1.x的promise指令, 根据promise的结果,渲染不同的视图
JavaScript
3
star
84

monthly-technology-sharing

每月的技术分享大纲
HTML
3
star
85

wasm-hasher

computed data hash by webAssembly support md5,sha1,sha2,sha3,sm3 and more
Rust
3
star
86

signature-example

数据签名防篡改工作原理和例子
JavaScript
3
star
87

vscode-imagemin

An vscode extension to minify image
TypeScript
3
star
88

iTranslate

CSS
3
star
89

deno_dnx

A command line tool similar to npx
TypeScript
3
star
90

wxeact

基于微信小程序框架labrador的二次开发
JavaScript
3
star
91

concurrency-benchmarks

Golang/Nodejs/Deno/Python/PHP的原生 HTTP 高并发测试
JavaScript
2
star
92

prune.rs

Rust
2
star
93

wasm-example.go

WebAssembly example writing in Golang
Go
2
star
94

iconfont-componentized

IconFont 组件生成器
TypeScript
2
star
95

event-emitter.js

A Javascript event emitter implementation without any dependencies. only 1.4Kb
JavaScript
2
star
96

wxapp-webpack-boilerplate

boilerplate for building a morden WeChat app
JavaScript
2
star
97

wxapp-flex-grid

flex layout system for Wechat app
HTML
2
star
98

dockposer

docker-compose extra tool for easy deployment
TypeScript
2
star
99

go-filepool

GO文件上传例子
Go
2
star
100

proxy

代理服务器
JavaScript
2
star