使用私有bitbucket作曲者存储库来保护satis存储库

时间:2019-02-08 16:34:34

标签: ssh composer-php satis

情况

我目前已在公共域(类似于https://packages.domain.tld)上成功运行了satis信息库。

satis中的composer软件包位于bitbucket存储库中。我已将这些存储库公开,以便

  • 构建satis存储库
  • composer install|update我所有项目中的那些软件包(在本地以及在项目服务器上ssh部署时)

问题

satis存储库和git软件包存储库均可公开访问。我们不希望将软件提供给竞争对手,而是希望将其保密。

因此,基本上我正在尝试确定是否有可能:

  • 保护satis存储库
  • 在bitbucket上使用私有存储库构建一个satis存储库
  • composer在本地安装软件包
  • 作曲家使用ssh将软件包安装在远程服务器上

到目前为止已采取的步骤

我找到了一些有关如何保护它的资源。

1。 OAuth

我已经创建了一个OAuth使用方。在构建satis仓库时,它会询问消费者密钥和秘密。然后,它会建立卫星回购。

当composer在本地安装/更新依赖项时,它可以工作(因为使用者密钥和机密存储在composer缓存中)。在登台服务器或生产服务器上部署(通过ssh通过capistrano自动化)会失败,并显示以下错误:

repository access denied. deployment key is not associated with the requested repository.                                                                                                                                                       
  fatal: Could not read from remote repository.      

此线程之后:Satis, Bitbucket and SSH最好的解决方案是在satis服务器上为每个软件包/版本创建档案(.zip)。

"archive": {
    "directory": "dist",
    "format": "zip",
    "skip-dev": true
  }

将以上内容添加到我的satis.json中并构建我的存储库后,satis服务器将包含每个composer软件包存储库的副本(供composer安装使用,而不是原始git repos)。

但是仍然可以公开访问我的satis服务器。

2。设置满足于ssh

此线程https://getcomposer.org/doc/articles/handling-private-packages-with-satis.md#security说,我可以通过在ssh上托管satis服务器来保护它。

阅读后,我仍然不知道如何执行此操作。对于我的大脑来说,还不够详细。

问题

  • 我是否可以正确地假设,如果我通过SSH托管满意度,我是否可以解决问题?
  • 这是最好的方法吗?
  • 如果是,是的,我如何通过SSH托管,是否有任何资源可以帮助我?

0 个答案:

没有答案