如何 运行 私有飞镖酒吧服务器

How to run private dart pub server

我想要一个只有我的团队才能发布和检索包的私人发布服务器,不幸的是我没有找到任何关于部署发布服务器的文档。

我下载了 pub server 并成功部署到 appengine。

我现在想知道 /admin 私钥部分应该包含哪些值,以及它们的用途。它们是否用于对尝试访问包的用户进行身份验证?

这里有两个方面需要考虑:

休息 api:

第一个方面是拥有一个私人发布包存储库,(可能数量有限)开发人员可以向其发布和访问包。此处所需的功能是类似 REST 的狭义 API。关于这个 API 的描述可以在 here.

中找到

UI图层和其他东西

第二个方面是在私有 pub 包存储库之上有一个 Web UI,开发人员可以在其中搜索包、发现它们、查看上传的版本等。

实施pub.dartlang.org

pub.dartlang.org 站点试图同时解决这两个方面的问题。它不打算重新用于其他用户(即使它可能)。 python version of the site is in maintenance mode. The dart version 目前正在编写以替换 python 版本。它将以与 python 版本完全相同的功能和行为开始。

由于 REST api 接近于固定的 ATM,因此它只实现一次并且可以在 pub 服务器之间共享是有道理的。因此,我们尝试将此共享代码放入一个通用的 package:pub_server 包中。

如果您打算重新使用 pub.dartlang.org 代码,这里是对所发生情况的解释:该应用程序是一个 AppEngine 应用程序,将压缩包存储在 Google 云存储中。该站点的搜索功能基于 Google 的自定义搜索 API。元数据存储在数据存储中。用于 read/write 访问 GCS 存储桶和用于自定义搜索 API 的私钥存储在数据存储中,并将延迟加载。通过使用 ServiceAccount 凭据和数据存储的 REST api,dart 版本目前也可以 运行 在 AppEngine 之外(您可以在 bin/server_io.dart 中看到管道层。一些有限的配置数据集是在源代码中(例如服务帐户电子邮件、GCS 存储桶名称)。