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