- 支持 TCP / WebSocket 监听,配置热重载,systemd 集成 - meshAuthHook 实现用户名/密码认证与 ACL - meshLogHook 打印所有 MQTT 事件(CONNECT/PUBLISH/SUBSCRIBE 等) - meshDBHook 将 msh/# 主题 payload 异步写入数据库 - 数据库支持 SQLite(默认)和 MySQL,自动初始化并补充缺失配置 - payload_log 表字段:ID、client、topic、qos、payload、created_at、sender_ip - 自动补充 config.yaml 缺失字段(文件存在时写回) - .gitignore 屏蔽 data/ 和 .workbuddy/
41 lines
1.3 KiB
Makefile
41 lines
1.3 KiB
Makefile
BINARY := meshgo
|
||
GOOS := linux
|
||
GOARCH := amd64
|
||
OUT := ./build/$(BINARY)
|
||
|
||
.PHONY: all build build-linux build-win install clean
|
||
|
||
all: build
|
||
|
||
## 本机编译(Windows CGO)
|
||
build:
|
||
@mkdir -p build
|
||
CGO_ENABLED=1 go build -trimpath -ldflags="-s -w" -o $(OUT) .
|
||
@echo ">>> 已生成: $(OUT)"
|
||
|
||
## Linux 交叉编译(需要目标机器有 gcc,可选)
|
||
## 若遇 sqlite3 链接错误,请在 Linux 服务器上直接编译:
|
||
## make build-linux-native
|
||
build-linux:
|
||
@mkdir -p build
|
||
CGO_ENABLED=1 GOOS=$(GOOS) GOARCH=$(GOARCH) CC=x86_64-linux-gnu-gcc \
|
||
go build -trimpath -ldflags="-s -w" -o $(OUT) .
|
||
@echo ">>> 已生成 Linux $(GOARCH) 二进制: $(OUT)"
|
||
|
||
## Linux 服务器上原生编译(推荐生产环境使用)
|
||
build-linux-native:
|
||
@mkdir -p build
|
||
CGO_ENABLED=1 go build -trimpath -ldflags="-s -w" -o $(OUT) .
|
||
@echo ">>> 已生成: $(OUT)"
|
||
|
||
## 部署到目标机器(需要 SSH_HOST 环境变量,如 make install SSH_HOST=root@192.168.1.10)
|
||
install: build
|
||
@test -n "$(SSH_HOST)" || (echo "请设置 SSH_HOST,例如: make install SSH_HOST=root@192.168.1.10" && exit 1)
|
||
scp $(OUT) $(SSH_HOST):/usr/local/bin/$(BINARY)
|
||
scp meshgo.service $(SSH_HOST):/etc/systemd/system/$(BINARY).service
|
||
ssh $(SSH_HOST) "systemctl daemon-reload && systemctl enable $(BINARY) && systemctl restart $(BINARY)"
|
||
@echo ">>> 部署完成"
|
||
|
||
clean:
|
||
rm -rf build/
|