Go to file
2023-02-24 01:09:01 +08:00
.idea swag 测试 2022-10-03 15:37:55 +08:00
app 完善主题创建/删除 2022-11-26 20:22:38 +08:00
common 添加 waf 2022-10-25 15:01:57 +08:00
controller 完善主题创建/删除 2022-11-26 20:22:38 +08:00
docs 完善主题创建/删除 2022-11-26 20:22:38 +08:00
global 验证码简单实现 2022-10-25 11:40:24 +08:00
logger logger 支持动态设置日志级别 2023-02-24 01:09:01 +08:00
middleware 完善主题创建/删除 2022-11-26 20:22:38 +08:00
model 完善主题创建/删除 2022-11-26 20:22:38 +08:00
services 完善主题创建/删除 2022-11-26 20:22:38 +08:00
.air.toml 初始化项目 2022-10-03 03:46:09 +08:00
.gitignore swag 测试 2022-10-03 15:37:55 +08:00
config.yaml 添加 waf 2022-10-25 15:01:57 +08:00
go.mod logger 支持动态设置日志级别 2023-02-24 00:22:54 +08:00
go.sum logger 支持动态设置日志级别 2023-02-24 00:22:54 +08:00
init.go readme 完善 2022-10-03 15:10:03 +08:00
main.go logger 支持动态设置日志级别 2023-02-24 00:22:54 +08:00
README.MD 添加 casbin model 定义 2022-10-05 16:02:09 +08:00

使用 gofiber 作为 http 服务框架

编译环境

因使用了 xorm.io/reverse

windows 环境下 需要安装 gcc 环境

Mingw 可前往 (mingw仓库)

下载 x86_64-posix-seh

解压后将 bin 目录 添加到环境变量

重启生效即可

验证是否安装 gcc

gcc -v

一键初始化项目

go generate -x init.go

xorm

从结构体 同步 数据库表结构

User表为例

go test ./model/user/generate -v

从 数据库 反向同步 数据库结构

部分类型 如: bool 可能需要手动处理

go generate ./model/user/reverse_generate.go

手动初始化

swagger

安装
go install github.com/swaggo/swag/cmd/swag@latest
生成 swagger 文档
#  --parseInternal  解析内部依赖包,默认值: false
#  --parseDependency  解析外部依赖包,默认值: false
#  --parseDepth 解析依赖包深度,默认值:100
# swag init --parseDependency --parseInternal

# 简写
swag i -pd --parseInternal

air 热重载

安装
go install github.com/cosmtrek/air@latest

配置文件 .air.toml

运行项目

热重载

air

直接运行

go run ./main.go

编译运行

go build

所需依赖服务 环境

建议通过 portainer 部署

Portainer

sudo docker run -d -p 9000:9000 --name portainer --restart always\
 -v /var/run/docker.sock:/var/run/docker.sock\
 -v /opt/portainer/data:/data\
 portainer/portainer-ce

Redis

version: '3.4'

services:
  redis_master:
    container_name: redis-master
    image: redis:latest
    restart: always
    command: /etc/redis/redis.conf --appendonly yes --requirepass "12341234"
    ports:
      - "6379:6379"
    volumes:
      - "/opt/redis/data:/data"
      - "/opt/redis/redis.conf:/etc/redis/redis.conf"

Mysql

version: "3.4"
x-environment: &environment
  environment:
    - MYSQL_PORT_3306_TCP_ADDR=mysql
    - MYSQL_ROOT_HOST=%
    - MYSQL_ROOT_PASSWORD=12341234

services:
  mysql:
    container_name: mysql
    image: mysql/mysql-server:8.0
    ports:
      - "3306:3306"
    restart: always
    <<: *environment
    volumes:
      - /opt/mysql/data:/var/lib/mysql