情况
我目前已在公共域(类似于https://packages.domain.tld)上成功运行了satis信息库。
satis中的composer软件包位于bitbucket存储库中。我已将这些存储库公开,以便
composer install|update
我所有项目中的那些软件包(在本地以及在项目服务器上ssh部署时)问题
satis存储库和git软件包存储库均可公开访问。我们不希望将软件提供给竞争对手,而是希望将其保密。
因此,基本上我正在尝试确定是否有可能:
到目前为止已采取的步骤
我找到了一些有关如何保护它的资源。
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服务器来保护它。
阅读后,我仍然不知道如何执行此操作。对于我的大脑来说,还不够详细。
问题