NixMsg

自建的消息中转服务。设备、程序、App 作为「端」连到同一台服务器,端之间互发消息或群发。单个 Go 程序,内置 MQTT,SQLite 存储,自带管理后台,提供 Go、JS/TS、Python、Java/Android SDK。

功能概览

  • 端登录、会话令牌、在线目录、单聊与群发
  • 离线保留、延迟、定时、撤回、回执
  • 管理后台(网页 + API)、自助注册、Prometheus /metrics
  • 单文件二进制或 Docker 部署

构建

需要:Go、Node.js LTS、pnpm、Task。

task check          # 构建前端、编译、lint、单元测试
task build          # 产出 bin/nixmsg(Windows 为 bin/nixmsg.exe)

交叉编译三个发布平台(CGO_ENABLED=0,产物在 bin/,勿提交):

task q:release-bins
# 等价于:
# CGO_ENABLED=0 GOOS=linux   GOARCH=amd64 go build -tags embeddist -o bin/nixmsg-linux-amd64 ./cmd/nixmsg
# CGO_ENABLED=0 GOOS=linux   GOARCH=arm64 go build -tags embeddist -o bin/nixmsg-linux-arm64 ./cmd/nixmsg
# CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -tags embeddist -o bin/nixmsg-windows-amd64.exe ./cmd/nixmsg

Docker 当前架构镜像(不推送):

task q:docker-build
# 镜像名 git.asio.asia/nixevol/nixmsg:0.1.0

推送当前架构镜像(阶段 3 正式执行;推送前先 docker login git.asio.asia):

task q:docker-push

多架构 linux/amd64 + linux/arm64(需 Docker buildx / QEMU):

task q:docker-buildx

配置文件

默认读取当前目录的 config.yaml;也可用环境变量 NIXMSG_CONFIG 指定路径。

初始化与启动

  1. 复制并编辑配置:

    copy deploy\config.example.yaml config.yaml   # Windows
    # cp deploy/config.example.yaml config.yaml  # Linux/macOS
    
  2. 生成管理员密码(只打印一次,请自行保存):

    # Windows PowerShell
    $env:NIXMSG_CONFIG="config.yaml"; .\bin\nixmsg.exe admin init
    
    # Linux / macOS
    NIXMSG_CONFIG=config.yaml ./bin/nixmsg admin init
    
  3. 启动服务:

    $env:NIXMSG_CONFIG="config.yaml"; .\bin\nixmsg.exe serve
    # NIXMSG_CONFIG=config.yaml ./bin/nixmsg serve
    
  4. 浏览器打开 http://127.0.0.1:7443/(或你配置的 listen / admin_listen)登录管理后台。健康检查:GET /healthz。

Docker Compose 示例见 deploy/docker-compose.yml。首次需保证数据目录对 uid 65532 可写,再:

docker compose -f deploy/docker-compose.yml run --rm nixmsg admin init
docker compose -f deploy/docker-compose.yml up -d

SDK

SDK 说明
sdk/go Go 模块 git.asio.asia/nixevol/NixMsg/sdk/go
sdk/js npm @nixevol/nixmsg
sdk/python PyPI nixmsg
sdk/java Maven asia.asio.nixmsg:nixmsg-sdk

包正式发布在阶段 3;开发期可按各 README 本地引用。

文档

许可证

专有软件,见 LICENSE。源代码和发布物公开可读,不代表授予使用许可。

S
Description
No description provided
Readme
910 KiB
Languages
Go 67.7%
TypeScript 10.1%
Java 9.4%
Python 7.8%
Vue 4.2%
Other 0.6%