Files
kevin bf41e82a43 feat: 初始化 meshgo MQTT 服务
- 支持 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/
2026-05-15 18:09:39 +08:00

41 lines
1.3 KiB
Makefile
Raw Permalink 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.
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/