Wire™
本仓库是 Wire 源代码的一部分。您可以在 wire.com 或联系 opensource@wire.com 获取更多信息。
您可以在 github.com/wireapp/wire 找到已发布的源代码。
有关许可信息,请参阅附带的 LICENSE 文件以及 wire.com/legal/licenses/ 上的第三方许可证列表。
未授予 Wire 商标及其相关标志的任何许可,这些商标和标志将继续由 Wire Swiss GmbH 独家拥有。未经 Wire Swiss GmbH 的明确事先书面同意,明确禁止使用 Wire 商标和/或其相关标志。
Wire 服务器
本仓库包含 Wire 服务器的源代码。它包含运行 Wire 所需的所有库和服务。
有关如何自托管您自己的 Wire-Server 的文档,请参阅 此部分。联邦化(Federation)在我们的长期路线图之上。
更多详情请参见“开源 Wire 服务器代码”。
本仓库的内容
本仓库包含以下源代码:
-
services
- nginz: 公共 API 反向代理(带有自定义 libzauth 模块的 Nginx)
- galley: 会话和团队
- brig: 账户
- gundeck: 推送通知中心
- cannon: WebSocket 推送通知
- cargohold: 资产(图像、文件、...)存储
- proxy: 第三方 API 集成
- spar: 单点登录(SSO)
-
tools
- db/: 迁移工具(例如,当添加新表时)
- stern/: 后台管理工具(基于 Swagger 的基础界面)
-
libs: 共享库
它还包含
- build: 某些平台的构建脚本和 Dockerfiles
- deploy: (进行中)- 如何在临时、内存演示模式下运行 wire-server
- docs: 文档
- 注意: 此目录仅包含在过去一年内(自 25 年 2 月 19 日起)修改过的文件;所有其他文件已移至 wire-docs 仓库。此目录中的文件用于构建完整的 wire 文档站点,因此对这些文件的任何更改都应在此处更新,而对其他文件的更新应直接提交到 wire-docs 仓库。
- hack: 主要用于 CI 的 kuberentes helm chart 开发/发布的脚本和配置
- charts: Kubernetes Helm charts。这些 charts 已镜像到 S3,可与
helm repo add wire https://s3-eu-west-1.amazonaws.com/public.wire.com/charts一起使用。有关更多信息,请参阅 管理员指南。
架构概览
以下图表概述了构成 Wire Server 的组件的(部署)架构, 以及组件之间的主要内部和外部依赖关系。

内部组件之间的通信目前未受专用身份验证或加密保护,并假定其仅限于私有网络。
开发环境设置
如何构建 wire-server 二进制文件
有两种选择:
1. 使用 docker
如果您不希望从头构建所有 docker 镜像(例如,ubuntu20-builder 需要很长时间),可以从 此处 下载预构建的镜像。
如果您希望构建自己的 docker 镜像,您需要 docker 版本 >= 17.05 和 make。然后,
# optionally:
# make docker-builder # if you don't run this, it pulls the ubuntu20-builder image from quay.io
make docker-deps docker-intermediate docker-services
# subsequent times, after changing code, if you wish to re-create docker images, it's sufficient to
make docker-intermediate docker-services
will, eventually, have built a range of docker images. Make sure to give Docker enough RAM; if you see make: *** [builder] Error 137, it might be a sign that the build ran out of memory. You can also mix and match – e.g. pull the ubuntu20-builder image and build the rest locally.
请参阅 Makefile 和 Dockerfile,以及 build/ubuntu/README.md 以获取详细信息。
2. 使用 nix 提供的构建环境
这仅适用于本地开发和测试。请参阅开发者文档中的构建说明。
如何安装和运行 wire-server
您有两个选项:
-
选项 1。(推荐)使用 wire-server-deploy 中提供的配置和说明,在 kubernetes 上安装 wire-server。这是在服务器上运行的最佳选项,如果您希望自行托管 wire-server,则推荐此选项。
-
选项 2。编译此仓库中的所有代码,然后你可以使用
dist/run-services。此选项旨在作为在本地开发机器上试用 wire-server 的方式,不适用于生产环境。
