gfast-v32

config.yaml

server:
  address:     ":8808"
  serverRoot: "resource/public"
  dumpRouterMap: false
  routeOverWrite: true
  openapiPath: "/api.json"
  swaggerPath: "/swagger"
  NameToUriType: 3
  maxHeaderBytes: "20KB"
  clientMaxBodySize: "50MB"
  # Logging配置
  logPath: "resource/log/server"                 # 日志文件存储目录路径,建议使用绝对路径。默认为空,表示关闭
  logStdout: true               # 日志是否输出到终端。默认为true
  errorStack: true               # 当Server捕获到异常时是否记录堆栈信息到日志中。默认为true
  errorLogEnabled: true               # 是否记录异常日志信息到日志中。默认为true
  errorLogPattern: "error-{Ymd}.log"  # 异常错误日志文件格式。默认为"error-{Ymd}.log"
  accessLogEnabled: true              # 是否记录访问日志。默认为false
  accessLogPattern: "access-{Ymd}.log" # 访问日志文件格式。默认为"access-{Ymd}.log"

logger:
  path: "resource/log/run"
  file: "{Y-m-d}.log"
  level: "all"
  stdout: true

# Database.
database:
  logger:
    level:   "all"
    stdout:  true
    Path: "resource/log/sql"

  default:
    link:   "mysql:root:root@tcp(127.0.0.1:3306)/test?charset=utf8mb4&parseTime=true&loc=Local"
    debug:  true
    charset: "utf8mb4" #数据库编码
    dryRun: false #空跑
    maxIdle: 10 #连接池最大闲置的连接数
    maxOpen: 10 #连接池最大打开的连接数
    maxLifetime: "30s" #(单位秒)连接对象可重复使用的时间长度

gfToken:
  cacheKey: "gfToken:"
  timeOut: 10800
  maxRefresh: 5400
  multiLogin: true
  encryptKey: "49c54195e750b04e74a8429b17896586"
  cacheModel: "redis"
  excludePaths:
    - "/api/v1/system/login"


# Redis 配置示例
redis:
  # 单实例配置
  default:
    address: 127.0.0.1:6379
    db: 1
    idleTimeout: "60s" #连接最大空闲时间,使用时间字符串例如30s/1m/1d
    maxConnLifetime: "90s" #连接最长存活时间,使用时间字符串例如30s/1m/1d
    waitTimeout: "60s" #等待连接池连接的超时时间,使用时间字符串例如30s/1m/1d
    dialTimeout: "30s" #TCP连接的超时时间,使用时间字符串例如30s/1m/1d
    readTimeout: "30s" #TCP的Read操作超时时间,使用时间字符串例如30s/1m/1d
    writeTimeout: "30s" #TCP的Write操作超时时间,使用时间字符串例如30s/1m/1d
    maxActive: 100

system:
  notCheckAuthAdminIds: [1,2,31]  #无需验证后台权限的用户id
  dataDir: "./resource/data"
  cache:
    model: "redis"  #缓存模式 memory OR redis
    prefix: "gFastV3Cache:" #缓存前缀

#casbin配置
casbin:
  modelFile: "./resource/casbin/rbac_model.conf"
  policyFile: "./resource/casbin/rbac_policy.csv"


# CLI.
# - link:   "mysql:root:root@tcp(127.0.0.1:3306)/test?charset=utf8mb4&parseTime=true&loc=Local"
gfcli:
  gen:
    dao:
      - link:            "mysql:root:root@tcp(127.0.0.1:3306)/test?charset=utf8mb4&parseTime=true&loc=Local"
        tables:          "tools_gen_table,tools_gen_table_column"
        removePrefix:    "gf_"
        descriptionTag:  true
        noModelComment:  true
        path: "./internal/app/system"

docker-compose.yml

version: "3.8"
services:
  mariadb:
    image: mariadb:11.2.2-jammy
    container_name: mariadb
    restart: always
    environment:
      # MYSQL_USER: adminer
      # MYSQL_PASSWORD: adminer
      # MYSQL_DATABASE: test
      MARIADB_ROOT_PASSWORD: root
      MARIADB_USER: adminer
      MARIADB_PASSWORD: adminer
      MARIADB_DATABASE: test
    ports:
      - 3306:3306
    volumes:
      - db_data:/var/lib/mysql
  adminer:
    image: adminer:4.8.1-standalone
    container_name: adminer
    environment:
      ADMINER_DEFAULT_SERVER: mariadb
    restart: always
    ports:
      - 47201:8080
  redis:
    image: redis:7.2.4-alpine
    ports:
      - 6379:6379
volumes:
  db_data:

README.md

# 启动前端开发服务
cd ui
yarn
yarn dev

# 启动后端接口服务
docker-compose up -d # projectRootDir
# 手动将 ./serve/resource/data/gfast-v32.sql 通过启动起来的 adminer 服务导入到启动起来的 mysql 中的 test 数据库去。
# adminer 访问地址: http://localhost:47201

cd serve
cd manifest/config
cp config.yaml.bak config.yaml
cd ../../../ # projectRootDir
cd serve
go run ./main.go