{"repo":"imboy-pub/imboy","free":true,"listed":false,"github":"https://github.com/imboy-pub/imboy","clone":"git clone https://github.com/imboy-pub/imboy.git","description":"使用erlang和PostgreSQL做后端、flutter做前端开发的一款开源的即时聊天解决方案（基于erlang/otp的高性能web框架 cowboy 做后端服务，用 \"8核16G 主机（100万PPS）\"压测，保持100万+TCP稳定在线90分钟以上） 支持基于webrtc 一对一视频通话功能","language":"Erlang","stars":33,"topics":["cowboy","erlang","postgresql","websocket"],"license":null,"category":"databases-storage","readme_excerpt":"IMBoy 后端 English IMBoy 是可私有部署的即时通讯平台。本仓库包含 Erlang/OTP 后端、数据库迁移、生产部署配置和产品文档；Flutter 客户端与 React 管理后台在独立仓库中。 能做什么 - 单聊、群聊、频道、朋友圈和消息推送 - HTTP API 与 WebSocket 长连接 - 可选端到端加密（E2EE） - PostgreSQL 持久化与 Garage S3 附件直传 - Docker Compose 单节点生产部署（Helm/Kubernetes 为实验性，未经生产集群验证） 系统架构 本地启动 1. 准备环境 - Erlang/OTP 28+ - GNU Make - Docker 2. 初始化 脚本会启动 PostgreSQL 18，并创建 .env 和 config/sys.local.config 。按脚本提示核对数据库密码；这两个本地配置都不会提交到 Git。 3. 编译并启动 启动成功后访问： 如果手机需要连接本机后端，请把配置中的 127.0.0.1 改为电脑的局域网 IP。 常用命令 代码入口 业务调用遵循 Handler → Logic → DS → Repo 。新增接口通常需要修改 Handler、路由、Logic，并补测试；不要修改 vendored 的 erlang.mk 。 生产部署 脚本会自动生成 .env 、10 个随机密钥和 RSA 登录密钥对，然后停下来让你填 3 项机器 无从知晓的信息（两个域名 + 证书通知邮箱）。填好后再跑一次同一条命令，它会完成 前置检查、拉起服务、签发 TLS 证书并自检。 ⚠️ 生产编排文件 deploy/docker-compose.prod.yml 不随开源仓分发 ，需通过商务 交付渠道获取（leeyisoft@qq.com）后放入 deploy/ 目录。 install.sh 会在缺失时 明确提示。仅作评估可先用下方的最小演示环境，无需该文件。 生产环境还需要域名、TLS 和强密钥，完整步骤见 部署指南。 快速演示 最小两服务环境（PostgreSQL + 后端），适合产品评估和现场演示。 详细演示流程见 5 分钟 Demo 脚本。 继续阅读 - 在线文档站 （教程 / 指南 / 参考 / 合规） - E2EE 协议规范 - E2EE 安全简报（企业决策者） - 后端架构 - REST API 目录 - WebSocket 协议 - 贡献指南 - 安全说明 许可证 MulanPSL-2.0","default_branch":null,"files":null,"tree":[],"storefront":"/r/imboy-pub","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/imboy-pub/imboy/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}