Skip to content

Commit ec086eb

Browse files
committed
🐉 重新构筑
1 parent c52ed46 commit ec086eb

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

110 files changed

+7665
-1630
lines changed

.env.example

-15
This file was deleted.

.gitignore

+12-4
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,21 @@
44
*.dll
55
*.so
66
*.dylib
7+
.idea
8+
.vscode
9+
.token
10+
11+
build.sh
12+
logs
13+
xirang
714

815
# Test binary, built with `go test -c`
916
*.test
1017

1118
# Output of the go coverage tool, specifically when used with LiteIDE
1219
*.out
13-
.env
14-
eryajfgo
15-
.vscode
16-
.idea
20+
21+
# Dependency directories (remove the comment below to include it)
22+
# vendor/
23+
tmp
24+
docs/docker-compose/data

Dockerfile

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
FROM golang:1.17.10 AS builder
2+
3+
# ENV GOPROXY https://goproxy.io
4+
5+
RUN mkdir /app
6+
ADD . /app/
7+
WORKDIR /app
8+
RUN sed -i 's@localhost:389@openldap:389@g' /app/config.yml \
9+
&& sed -i 's@host: localhost@host: mysql@g' /app/config.yml && go build -o xirang .
10+
11+
FROM centos:centos7
12+
RUN mkdir /app
13+
WORKDIR /app
14+
COPY --from=builder /app/ .
15+
RUN chmod +x wait xirang && yum -y install vim net-tools telnet wget curl && yum clean all
16+
17+
CMD ./wait && ./xirang

LICENSE

+674-21
Large diffs are not rendered by default.

Makefile

+10-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,16 @@
11
default: build
22

3+
run:
4+
GIN_MODE=release go run main.go
5+
36
build:
47
go build -o xirang main.go
58

69
build-linux:
7-
CGO_ENABLED=0 GOARCH=amd64 GOOS=linux go build -o xirang main.go
10+
CGO_ENABLED=0 GOARCH=amd64 GOOS=linux go build -o xirang main.go
11+
12+
build-linux-arm:
13+
CGO_ENABLED=0 GOARCH=arm64 GOOS=linux go build -o xirang main.go
14+
15+
lint:
16+
env GOGC=25 golangci-lint run --fix -j 8 -v ./...

README.md

+73-24
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,26 @@
1+
<div align="center">
2+
13
<h1 align="center">XiRang</h1>
24

3-
<div align="center">
4-
简单好用,不缠不绕,直接上手的go-web框架
5+
[![Auth](https://img.shields.io/badge/Auth-eryajf-ff69b4)](https://github.com/eryajf)
6+
[![Go Version](https://img.shields.io/github/go-mod/go-version/eryajf/xirang)](https://github.com/eryajf/xirang)
7+
[![Gin Version](https://img.shields.io/badge/Gin-1.6.3-brightgreen)](https://github.com/eryajf/xirang)
8+
[![Gorm Version](https://img.shields.io/badge/Gorm-1.20.12-brightgreen)](https://github.com/eryajf/xirang)
9+
[![GitHub Issues](https://img.shields.io/github/issues/eryajf/xirang.svg)](https://github.com/eryajf/xirang/issues)
10+
[![GitHub Pull Requests](https://img.shields.io/github/issues-pr/eryajf/xirang)](https://github.com/eryajf/xirang/pulls)
11+
[![GitHub Pull Requests](https://img.shields.io/github/stars/eryajf/xirang)](https://github.com/eryajf/xirang/stargazers)
12+
[![HitCount](https://views.whatilearened.today/views/github/eryajf/xirang.svg)](https://github.com/eryajf/xirang)
13+
[![GitHub license](https://img.shields.io/github/license/eryajf/xirang)](https://github.com/eryajf/xirang/blob/main/LICENSE)
14+
15+
<p> 🦖 简单好用,不缠不绕,直接上手的go-web框架 </p>
16+
17+
<img src="https://camo.githubusercontent.com/82291b0fe831bfc6781e07fc5090cbd0a8b912bb8b8d4fec0696c881834f81ac/68747470733a2f2f70726f626f742e6d656469612f394575424971676170492e676966" width="800" height="3">
18+
</div><br>
19+
520
<p align="center">
6-
<img src="https://img.shields.io/github/go-mod/go-version/eryajf/xirang" alt="Go version"/>
7-
<img src="https://img.shields.io/badge/Gin-1.6.3-brightgreen" alt="Gin version"/>
8-
<img src="https://img.shields.io/badge/Gorm-1.22.3-brightgreen" alt="Gorm version"/>
9-
<img src="https://img.shields.io/github/license/eryajf/xirang" alt="License"/>
21+
<a href="" rel="noopener">
22+
<img src="https://cdn.staticaly.com/gh/eryajf/tu/main/img/image_20220826_101156.png" alt="Project logo"></a>
1023
</p>
11-
</div>
1224

1325

1426
>`xirang`,亦即息壤,大概在我读小学时,父亲从外地回来,并带回来几本读物,其中一本是迅哥儿小时候最爱读的《山海经》,也是在那时,我第一次认识这个词语。
@@ -19,28 +31,65 @@
1931
2032
## 项目介绍
2133

22-
[gitee地址](https://gitee.com/eryajf/xirang): https://gitee.com/eryajf/xirang
34+
`xirang` 是一个非常简单的 `gin+gorm` 框架的基础架构,你只需要修改简单的代码,即可开始上手编写你的接口。
2335

24-
`xirang` 是一个非常简单的 `gin+gorm` 框架的基础架构,你只需要修改简单的代码,即可开发出你想要的接口。
25-
26-
只需要将`.env.example`改为`.env`,然后配置里边的数据库配置信息,即可开始开发。
36+
只需要根据情况修改配置`config.yml`,然后配置里边的数据库配置信息,即可开始开发。
2737

2838
数据表会自动创建,也可以通过docs下的sql自行创建。
2939

30-
## 重构更新
31-
32-
将gorm更新到v2版本,优化了项目初始化逻辑,优化了整体的内容,废除掉一些不必要的内容。
33-
3440
## 目录结构
3541

3642
```
3743
xirang
38-
├── controller----------------控制层
39-
├── docs----------------------提供的原料信息
40-
├── main.go-------------------入口文件
41-
├── middleware----------------中间件
42-
├── model---------------------对象定义
43-
├── public--------------------一些公共组件
44-
├── router--------------------路由
45-
└── service-------------------服务层
46-
```
44+
├── config----------------配置文件读取
45+
├── controller------------控制层
46+
├── logic-----------------逻辑层
47+
├── middleware------------中间件
48+
├── model-----------------对象定义
49+
├── public----------------一些公共组件与工具
50+
├── routers---------------路由
51+
├── service---------------服务层
52+
├── test------------------一些测试
53+
├── config.yml------------配置文件
54+
└── main.go---------------程序入口
55+
```
56+
57+
## 快速开始
58+
59+
xirang项目的基础依赖项只有MySQL,本地准备好这两个服务之后,就可以启动项目,进行调试。
60+
61+
### 拉取代码
62+
63+
```sh
64+
# 后端代码
65+
$ git clone https://github.com/eryajf/xirang.git
66+
67+
# 前端代码
68+
$ git clone https://github.com/eryajf/xirang-ui.git
69+
```
70+
71+
### 更改配置
72+
73+
```sh
74+
# 修改后端配置
75+
$ cd xirang
76+
# 文件路径 config.yml, 根据自己本地的情况,调整数据库等配置信息。
77+
$ vim config.yml
78+
```
79+
80+
### 启动服务
81+
82+
```sh
83+
# 启动后端
84+
$ cd xirang
85+
$ go mod tidy
86+
$ make run
87+
88+
# 启动前端
89+
$ cd xirang-ui
90+
$ git config --global url."https://".insteadOf git://
91+
$ npm install --registry=http://registry.npmmirror.com
92+
$ yarn dev
93+
```
94+
95+
本地访问:http://localhost:8090,用户名/密码:admin/123456

config.yml

+73
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# delelopment
2+
system:
3+
# 设定模式(debug/release/test,正式版改为release)
4+
mode: debug
5+
# url前缀
6+
url-path-prefix: api
7+
# 程序监听端口
8+
port: 8888
9+
# 是否初始化数据(没有初始数据时使用, 已发布正式版改为false)
10+
init-data: true
11+
# rsa公钥文件路径(config.yml相对路径, 也可以填绝对路径)
12+
rsa-public-key: xirang-pub.pem
13+
# rsa私钥文件路径(config.yml相对路径, 也可以填绝对路径)
14+
rsa-private-key: xirang-priv.pem
15+
16+
logs:
17+
# 日志等级(-1:Debug, 0:Info, 1:Warn, 2:Error, 3:DPanic, 4:Panic, 5:Fatal, -1<=level<=5, 参照zap.level源码)
18+
level: -1
19+
# 日志路径
20+
path: logs
21+
# 文件最大大小, M
22+
max-size: 50
23+
# 备份数
24+
max-backups: 100
25+
# 存放时间, 天
26+
max-age: 30
27+
# 是否压缩
28+
compress: false
29+
30+
mysql:
31+
# 用户名
32+
username: root
33+
# 密码
34+
password: 123456
35+
# 数据库名
36+
database: go_ldap_admin
37+
# 主机地址
38+
host: localhost
39+
# 端口
40+
port: 3306
41+
# 连接字符串参数
42+
query: parseTime=True&loc=Local&timeout=10000ms
43+
# 是否打印日志
44+
log-mode: true
45+
# 数据库表前缀(无需再末尾添加下划线, 程序内部自动处理)
46+
table-prefix: tb
47+
# 编码方式
48+
charset: utf8mb4
49+
# 字符集(utf8mb4_general_ci速度比utf8mb4_unicode_ci快些)
50+
collation: utf8mb4_general_ci
51+
52+
# casbin配置
53+
casbin:
54+
# 模型配置文件, config.yml相对路径
55+
model-path: 'rbac_model.conf'
56+
57+
# jwt配置
58+
jwt:
59+
# jwt标识
60+
realm: test jwt
61+
# 服务端密钥
62+
key: secret key
63+
# token过期时间, 小时
64+
timeout: 12000
65+
# 刷新token最大过期时间, 小时
66+
max-refresh: 12000
67+
68+
# 令牌桶限流配置
69+
rate-limit:
70+
# 填充一个令牌需要的时间间隔,毫秒
71+
fill-interval: 50
72+
# 桶容量
73+
capacity: 200

0 commit comments

Comments
 (0)