6.2 源码构建
源码构建与开发
适合需要二次开发、自定义打包的开发者。
环境要求
- Go 1.25+
- Node.js 22+ 与 pnpm 9+(构建前端管理后台)
- (可选)MySQL 5.7+ / PostgreSQL 9.6+
- (可选)Redis 6.0+
1. 克隆仓库
git clone https://github.com/muleiwu/dwz-server.git
cd dwz-serverCNB 镜像:git clone https://cnb.cool/mliev/dwz/dwz-server.git
2. 安装依赖
go mod download3. 运行开发服务器
cp config.yaml.example config.yaml
# 根据需要编辑 config.yaml
go run main.go开发模式建议使用 SQLite + 内存缓存,避免启动外部依赖:
database:
driver: sqlite
filepath: "./config/sqlite.db"
cache:
driver: local
id_generator:
driver: local4. 运行测试
go test ./...
go test -cover ./...
go test -race ./...5. 构建二进制
仅后端
CGO_ENABLED=0 go build -ldflags="-s -w" -o dwz-server main.go带前端的完整打包
# 1. 构建前端(需要先克隆 admin-webui 仓库到同级目录)
cd admin-webui && pnpm install && pnpm run build:antd --filter='!./docs' && cd ..
# 2. 复制前端产物到 static/admin
mkdir -p static/admin && cp -r admin-webui/apps/web-antd/dist/* static/admin/
# 3. 构建后端(前端资源会通过 go:embed 嵌入)
CGO_ENABLED=0 go build -ldflags="-s -w" -o dwz-server main.go详细的多平台打包流程请参考仓库 docs/manual-build.md。
6. 目录速览
app/
controller/ HTTP handler(REST endpoint)
service/ 业务逻辑
dao/ GORM 数据访问
model/ 数据模型
dto/ 请求/响应 DTO
middleware/ 认证、CORS、操作日志、安装校验
config/
assembly.go 依赖注入装配顺序
server.go 服务启动顺序
autoload/ 路由与依赖提供者
internal/ 内部包:缓存、数据库、HTTP server 等
templates/ 嵌入式模板(错误页、安装页)
static/ 嵌入式管理后台构建产物