Satis是静态生成器,仅包含指定私有包,需手动更新;Toran Proxy是已停更的动态代理,可缓存公共包并托管私有包,功能完整但较重;现推荐Satis或Private Packagist等现代方案。

Satis 和 Toran Proxy 都是用于构建私有 Composer 包仓库的工具,但它们在功能定位、使用方式和维护状态上有明显区别。
1. Satis:静态包仓库生成器
Satis 是官方推荐的轻量级工具,本质是一个 静态文件生成器,用来创建一个可浏览的私有包列表页面,并生成 composer 兼容的 JSON 文件。
特点包括:
- 生成的是静态 HTML 和 JSON 文件,可部署在任意 Web 服务器(如 Nginx、Apache)上
- 只包含你明确配置的包(从 VCS、私有 Git 等拉取信息)
- 不缓存 Packagist 的公共包,除非手动添加到配置中
- 适合团队内部发布私有组件或镜像少量第三方包
- 需要定期运行
php satis build来更新索引
2. Toran Proxy:全功能代理与私有仓库
Toran Proxy 是一个更完整的解决方案,它既是私有包托管平台,也是 Packagist 的 私有代理缓存。
主要特性:
- 自动代理所有公共 Composer 包(如来自 packagist.org 的),并缓存到本地
- 支持上传私有包,提供私有分发能力
- 提供 Web 管理界面,方便查看包状态和配置用户权限
- 可以节省带宽、提升安装速度、增强稳定性(尤其网络受限环境)
- 本质上是一个 PHP 应用(基于 Symfony),需部署在支持 PHP 的服务器上
关键区别总结
两者最核心的不同在于:
- Satis 是静态生成器,只包含你指定的包,不代理公共包
- Toran 是动态代理服务,既能管私有包,又能缓存所有公共包
- Toran 功能更强但也更重,Satis 更简单透明、易于定制
- Toran Proxy 已停止维护(最后更新约在 2018 年),而 Satis 仍在持续更新
现在推荐什么?
由于 Toran Proxy 停止维护,目前更常见的选择是:
- 继续使用 Satis + 手动管理私有包
- 使用 Private Packagist(官方商业产品)
- 采用 Artifactory 或 Nexus Repository 这类通用制品库,支持 Composer 协议
基本上就这些。如果你只需要托管几个私有包,Satis 足够了;如果想要完整代理生态并集中管理,建议考虑现代替代方案。










