Go 后端服务,提供 ETOS Chat 的鉴权、会话、消息、轮询和 APNs 推送能力。
- 设备注册 + 挑战签名登录(JWT)
- 配对码加好友
- 私聊/群聊会话
- 文本消息
- 语音消息上传(本地磁盘存储)
- 语音消息与文件定期清理
- 基于 cursor 的长轮询事件
- APNs 设备 token 上报与新消息推送
- 支持 HTTP 与可选 HTTPS 直启
- 启动 PostgreSQL,并创建数据库
etos_chat。 - 复制配置:
cp .env.example .env
- 导出环境变量(示例):
set -a source .env set +a
- 运行服务:
go run ./cmd/server
POST /v1/auth/device/registerPOST /v1/auth/challengePOST /v1/auth/device/loginPOST /v1/auth/pair-code/createPOST /v1/auth/pair-code/acceptGET /v1/conversationsPOST /v1/conversationsPOST /v1/messages/textPOST /v1/messages/voiceGET /v1/messagesGET /v1/events/pollPOST /v1/push/devices
语音上传后,返回 voice_url,默认映射到:
/media/voice/<relative-path>
- 生产环境请务必设置强 JWT 密钥、启用 HTTPS、限制上传大小与来源。
- APNs 需要 Apple 开发者账号与
.p8Key。 - 若要服务端直接启用 TLS,请同时配置
ETOS_CHAT_TLS_CERT_FILE与ETOS_CHAT_TLS_KEY_FILE。