Files
pig-farm-controller/bmad/development-guide-main-zh.md
2025-11-01 19:22:39 +08:00

79 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 开发指南 - 主模块
本文档概述了猪场控制器应用程序的开发和操作方面。
## 1. 开发设置
### 1.1. 技术栈
* **语言**: Go 1.25
* **Web 框架**: Echo v4.13.4
* **ORM**: GORM v1.30.5
* **数据库**: PostgreSQL (TimescaleDB)
* **日志**: Zap v1.27.0
* **API 文档**: Swaggo v1.16.6
### 1.2. 先决条件
* Go 1.25 或更高版本
* PostgreSQL (如果使用 TimescaleDB 扩展)
### 1.3. 安装
1. **克隆仓库**:
```bash
git clone git.huangwc.com/pig/pig-farm-controller.git
cd pig-farm-controller
```
2. **下载 Go 模块**:
```bash
go mod tidy
```
3. **配置应用程序**:
将 `config.example.yml` 复制到 `config.yml` 并更新必要的字段,特别是 `jwt_secret`、数据库凭据和 ChirpStack API 令牌。
```bash
cp config.example.yml config.yml
# 编辑 config.yml
```
### 1.4. 运行应用程序
要运行应用程序,您可以使用 `go run` 命令或 `make run`(如果定义了 Makefile 目标)。
```bash
# 使用 go run
go run main.go
# 使用 Makefile (如果存在 'run' 目标)
make run
```
### 1.5. 测试
运行单元测试和集成测试:
```bash
go test ./...
```
## 2. 操作信息
### 2.1. 配置
应用程序配置通过 `config.yml` 进行管理。主要可配置参数包括:
* `app.jwt_secret`: JWT 签名密钥。
* `server.port`: HTTP 服务器监听端口。
* `database`: PostgreSQL 连接详细信息主机、端口、用户名、密码、数据库名、SSL 模式、是否为 TimescaleDB
* `log`: 日志级别、格式和文件输出设置。
* `chirp_stack`: ChirpStack API 主机和令牌。
* `lora_mesh`: LoRa Mesh 特定配置UART 端口、波特率等)。
### 2.2. 日志
日志配置为根据 `config.yml` 输出到控制台和文件 (`./app_logs/app.log`)。日志级别可以调整。
### 2.3. 部署
未找到明确的 Dockerfile 或 CI/CD 流水线配置。部署预计将通过手动或基于编译后的 Go 二进制文件和 `config.yml` 的自定义脚本进行处理。