evolution-foundation/evolution-go
GitHub: evolution-foundation/evolution-go
一款基于 Go 构建的高性能开源 WhatsApp API,提供实例管理、消息收发及实时事件推送等功能。
Stars: 512 | Forks: 287
Evolution Go
使用 Go 构建的高性能 WhatsApp API — Evolution Foundation 生态系统的一部分。
## 关于 **Evolution Go** 是一个使用 Go 构建的高性能 WhatsApp API。作为 Evolution Foundation 生态系统的一部分,它使用 [whatsmeow](https://github.com/tulir/whatsmeow) 库提供了一个健壮、轻量级的 WhatsApp 集成解决方案。 ## Evolution Foundation 生态系统的一部分 Evolution Go 是由 Evolution Foundation 维护的消息引擎之一。它被 [Evo CRM Community](https://github.com/evolution-foundation/evo-crm-community) 及生态系统中的其他项目用作 WhatsApp 提供商。 ## 功能 - **高性能** — 使用 Go 构建,实现最低的资源占用 - **RESTful API** — 清晰、文档齐全且带有 Swagger 的 REST endpoint - **实时事件** — 支持 WebSocket、Webhook、AMQP/RabbitMQ 和 NATS - **媒体支持** — 支持图片、视频、音频、文档,并可使用 MinIO/S3 存储 - **消息存储** — 可选的 PostgreSQL 持久化 - **二维码配对** — 内置二维码生成功能,用于设备绑定 - **许可证管理** — 内置许可功能,包含注册、激活和心跳检测 - **Docker 支持** — 提供 production-ready 的 Docker 配置 ## 快速开始 ### Docker(推荐) ``` git clone https://github.com/evolution-foundation/evolution-go.git cd evolution-go make docker-build make docker-run ``` ### 本地开发 ``` git clone https://github.com/evolution-foundation/evolution-go.git cd evolution-go # 设置、配置和运行 make setup cp .env.example .env make dev ``` ## 配置 创建一个 `.env` 文件: ``` # Server SERVER_PORT=8080 CLIENT_NAME=evolution # Security GLOBAL_API_KEY=your-secure-api-key-here # Database POSTGRES_AUTH_DB=postgresql://postgres:password@localhost:5432/evogo_auth?sslmode=disable POSTGRES_USERS_DB=postgresql://postgres:password@localhost:5432/evogo_users?sslmode=disable DATABASE_SAVE_MESSAGES=false # Logging WADEBUG=DEBUG LOGTYPE=console # 可选 # AMQP_URL=amqp://guest:guest@localhost:5672/ # NATS_URL=nats://localhost:4222 # WEBHOOK_URL=https://your-webhook-url.com/webhook # MINIO_ENABLED=true # MINIO_ENDPOINT=localhost:9000 # MINIO_ACCESS_KEY=minioadmin # MINIO_SECRET_KEY=minioadmin ``` | 变量 | 描述 | 默认值 | |---|---|---| | `SERVER_PORT` | 服务端口 | `8080` | | `CLIENT_NAME` | 客户端标识符 | `evolution` | | `GLOBAL_API_KEY` | API 认证密钥 | **必填** | | `DATABASE_SAVE_MESSAGES` | 启用消息存储 | `false` | | `WADEBUG` | WhatsApp 调试级别 | `INFO` | ## 许可证激活 Evolution Go 需要许可证才能运行。首次运行时: 1. 启动服务器 — 在激活之前,API endpoint 将返回 `503` 2. 在 `http://localhost:8080/manager/login` 打开 **Manager** 3. 输入您的 API URL 和 `GLOBAL_API_KEY` 4. 完成许可证注册流程 5. 激活后,API 即可完全运行 许可证状态会持久化保存在数据库中(`runtime_configs` 表)。系统会定期发送心跳以保持激活状态。 ## API 文档 Swagger UI 可在以下地址访问: ``` http://localhost:8080/swagger/index.html ``` ### 主要 Endpoint | 方法 | Endpoint | 描述 | |---|---|---| | `POST` | `/instance/create` | 创建 WhatsApp 实例 | | `GET` | `/instance/{name}/qrcode` | 获取用于配对的二维码 | | `POST` | `/message/sendText` | 发送文本消息 | | `POST` | `/message/sendMedia` | 发送媒体消息 | | `GET` | `/instance/{name}/status` | 获取实例状态 | | `DELETE` | `/instance/{name}` | 删除实例 | ## 项目结构 ``` evolution-go/ ├── cmd/evolution-go/ # Application entry point ├── pkg/ │ ├── core/ # License management & middleware │ ├── instance/ # Instance management │ ├── message/ # Message handling │ ├── sendMessage/ # Message sending │ ├── routes/ # HTTP routes │ ├── middleware/ # Auth & validation middleware │ ├── config/ # Configuration │ ├── events/ # Event producers (AMQP, NATS, Webhook, WS) │ └── storage/ # Media storage (MinIO) ├── docs/ # Swagger documentation ├── Dockerfile ├── Makefile └── VERSION ``` ## 技术栈 | 组件 | 技术 | |---|---| | 编程语言 | Go 1.24+ | | HTTP 框架 | Gin | | WhatsApp | [whatsmeow](https://github.com/tulir/whatsmeow) | | 数据库 | PostgreSQL | | ORM | GORM | | 消息队列 | RabbitMQ, NATS | | 对象存储 | MinIO/S3 | | 文档 | Swagger/OpenAPI | | 容器 | Docker | ## 文档 | 资源 | 链接 | |---|---| | 官方网站 | [evolutionfoundation.com.br](https://evolutionfoundation.com.br) | | 文档 | [docs.evolutionfoundation.com.br](https://docs.evolutionfoundation.com.br) | | 社区 | [evolutionfoundation.com.br/community](https://evolutionfoundation.com.br/community) | | Docker Hub | [evoapicloud/evolution-go](https://hub.docker.com/r/evoapicloud/evolution-go) | | 更新日志 | [CHANGELOG.md](./CHANGELOG.md) | | 贡献指南 | [CONTRIBUTING.md](./CONTRIBUTING.md) | | 安全策略 | [SECURITY.md](./SECURITY.md) | ## 托管 通过我们与 HostGator 的合作,使用优化的基础设施部署 Evolution Go: [**Evolution Go VPS — HostGator**](https://evolution-api.com/vps-evolution-go) ## 遥测 Evolution Go 会收集匿名的遥测数据(如使用的路由、API 版本)以帮助改进服务。**不会收集任何敏感或个人数据。** ## 安全 如果遇到安全问题,**请勿公开提交 issue**。请发送邮件至 **suporte@evofoundation.com.br** 或使用 GitHub 的私密漏洞报告功能。详情请参阅 [SECURITY.md](./SECURITY.md)。 ## 鸣谢 - [whatsmeow](https://github.com/tulir/whatsmeow),作者 [Tulir Asokan](https://github.com/tulir) — WhatsApp 协议库 - [Evolution API](https://github.com/evolution-foundation/evolution-api) — Node.js 姊妹项目 ## 许可证 Evolution Go 采用 Apache License 2.0 授权,并包含额外的品牌保护条件(保留 LOGO/版权以及要求使用通知)。完整详情请参阅 [LICENSE](./LICENSE)。 如需咨询许可事宜,请联系 **suporte@evofoundation.com.br**。 ## 商标 “Evolution Foundation”、“Evolution”和“Evolution Go”是 Evolution Foundation 的商标。有关品牌资产政策,请参阅 [TRADEMARKS.md](./TRADEMARKS.md)。 第三方归属信息记录在 [NOTICE](./NOTICE) 中。由 Evolution Foundation 制作 · © 2026
标签:EVTX分析, Go, Ruby工具, WhatsApp, whatsmeow, 即时通讯, 日志审计, 测试用例, 消息中间件, 请求拦截