私人 Hexdocs

· by Eric Meadows-Jönsson

今天我們很高興宣布針對私有套件釋出 Hexdocs。您上傳文件的所有私有套件(在執行 mix hex.publish 時採用預設值)現在都已在 Hexdocs 上提供,可供瀏覽。

您隨時都能透過查看套件的舊版本,並執行 mix hex.publish docs 來重新上傳文件。

如何運作?

組織的文件將置於每個組織的獨特子網域下,例如:https://acme.hexdocs.pm。當您首次造訪組織的子網域時,您將會重新導向至 https://hex.dev.org.tw,並要求您登入以驗證您是組織成員,如果您已經登入 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 來協調所有基礎架構,我們也計畫撰寫更多部落格文章,探討如何使用 Terraform 在 GCP 上建置 Hexdocs。