A detailed look at how Cargoman and Satis compare across key features
| Feature | Satis | Cargoman |
|---|---|---|
| Performance | Regenerates entire index on update (minutes for 50+ repos) | Incremental updates via webhooks (milliseconds) |
| Language | PHP (requires PHP-FPM, Nginx/Apache) | Rust single binary (no PHP runtime needed) |
| UI | None (CLI only) | Built-in web dashboard |
| Setup | Manual composer.json configuration | One-click Docker or binary deploy |
| Authentication | Manual .htpasswd or basic auth | Token-based with RBAC, SSO/LDAP |
| Webhook Support | Manual rebuild triggers | Automatic GitHub/GitLab/Bitbucket webhooks |
| Package Mirroring | Static mirror only | Dynamic proxy with caching |
| Vulnerability Scanning | None | Built-in (Pro+) |
| Analytics | None | Download tracking, usage insights |
| Multi-tenant | Not supported | Full multi-tenant with isolation |
| Memory Usage | ~512MB+ for large repos | ~20MB |
| Maintenance | PHP version updates, manual rebuilds | Zero maintenance (auto-updates) |
| Composer v2 | Partial | Full protocol support |
| Cost | Free (+ your time) | Free tier available, Pro from $29/mo |
The most common reasons PHP teams migrate from Satis to Cargoman
Satis requires a full PHP stack: PHP-FPM, Nginx or Apache, Composer, and all the PHP extensions your packages need. Cargoman is a single Rust binary. Download it, run it, done. No PHP runtime, no web server configuration, no dependency conflicts.
Every time you push a new tag, Satis regenerates its entire index from scratch. With 50+ repositories, that means minutes of waiting. Cargoman uses webhooks for instant incremental updates - your new version is available in milliseconds, not minutes.
No more editing satis.json by hand, no more SSH-ing into servers to trigger rebuilds. Cargoman includes a web dashboard where you can manage packages, generate tokens, control customer access, and monitor download activity - all from your browser.
Replace your satis.json with a single Cargoman repository URL
{
"name": "my/satis-repo",
"homepage": "https://packages.example.com",
"repositories": [
{ "type": "vcs", "url": "[email protected]:vendor/package-1.git" },
{ "type": "vcs", "url": "[email protected]:vendor/package-2.git" },
{ "type": "vcs", "url": "[email protected]:vendor/package-3.git" },
{ "type": "vcs", "url": "[email protected]:vendor/package-4.git" },
// ... 50 more repos to maintain manually
],
"require-all": true
}{
"repositories": [
{
"type": "composer",
"url": "https://{team}.packages.cargoman.io"
}
],
"require": {
"vendor/package-1": "^2.0",
"vendor/package-2": "^1.5"
}
}
// Packages sync automatically via webhooks.
// No manual rebuilds. No satis.json to maintain.We believe in being fair. Satis is a great tool in the right context.
If you only have a handful of packages and updates are rare, Satis works fine. The manual rebuild process is manageable at this scale.
If your team already runs PHP-FPM and Nginx for other services, adding Satis to that stack has low marginal cost.
Satis is completely free. That said, Cargoman Community is also free and includes a web UI, webhook sync, and token auth out of the box.
Yes. Cargoman implements the full Composer v2 repository protocol. You change the repository URL in your composer.json and authenticate with a token. No changes to your packages or workflow required.
Yes, migration takes minutes. Connect your Git repositories via webhook, and Cargoman automatically syncs all tags and branches. Your existing composer.lock files continue to work.
No. Cargoman is built with Rust and ships as a single binary. It has no PHP, Nginx, or Composer dependencies. This means faster performance, lower resource usage, and no PHP version conflicts.
Yes. The Community edition is free and open source, supporting up to 3 team seats with webhook sync, token auth, and a web UI — already more capable than Satis out of the box.
Cargoman uses Git webhooks to detect pushes in real time. When you push a tag or branch, packages are synced within seconds. No manual satis build step needed.
Migrate from Satis in minutes. Start with a free Community edition or go Pro for unlimited seats at $29/mo.