今天,我们很高兴地宣布发布适用于私有软件包的 Hexdocs。您上传了文档的所有私有软件包(运行 mix hex.publish
时的默认行为)现在都可以在 Hexdocs 上浏览。
与往常一样,您可以通过检出软件包的旧版本并运行
mix hex.publish docs
来重新上传文档。
组织的文档将在每个组织的唯一子域名下提供,例如:https://acme.hexdocs.pm。当您首次访问组织的子域名时,您将被重定向到 https://hex.org.cn 并被要求登录以验证您是组织的成员,如果您已登录 hex.pm,您将立即被重定向回来。登录 hex.pm 后,它将创建一个隐藏的密钥并将密钥的用户密钥传递回 hexdocs,hexdocs 将将其加密存储在 cookie 中。当您访问 hexdocs.pm 时,密钥将根据 hex.pm API 进行验证,以确保您仍然有权访问组织文档。
Hexdocs 的公共端是一个 Amazon S3 存储桶,它托管用户上传作为其软件包文档一部分的静态文件,Fastly 作为 CDN 位于前面。为了支持私有文档的新身份验证方案,一个新服务 必须构建,该服务正在取代 S3 存储桶。
以前的服务已部署在 Heroku 上,Hexdocs 是我们部署在 Google Kubernetes Engine 上的第一个服务。到目前为止,我们对 GCP 和 Kubernetes 的体验一直很好,我们计划将所有服务迁移到那里。我们还使用 Terraform 来编排所有基础设施,并且我们计划发布更多关于如何在 GCP 上使用 Terraform 构建 Hexdocs 的博文。