Comparison

Cargoman vs Satis

Stop wrestling with Satis. Start shipping code.

Feature Comparison

A detailed look at how Cargoman and Satis compare across key features

FeatureSatisCargoman
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

Why teams switch from Satis

The most common reasons PHP teams migrate from Satis to Cargoman

Stop managing PHP versions just to host PHP packages

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.

Minutes to milliseconds

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.

Finally, a UI

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.

Migration is simple

Replace your satis.json with a single Cargoman repository URL

Before: satis.json + manual rebuilds
{
  "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
}
After: Single Cargoman URL
{
  "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.

When Satis still makes sense

We believe in being fair. Satis is a great tool in the right context.

Small projects with 1-5 packages

If you only have a handful of packages and updates are rare, Satis works fine. The manual rebuild process is manageable at this scale.

Teams with existing PHP infrastructure

If your team already runs PHP-FPM and Nginx for other services, adding Satis to that stack has low marginal cost.

Zero budget requirement

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.

Frequently asked questions

Is Cargoman a drop-in replacement for Satis?

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.

Can I migrate my existing Satis packages to Cargoman?

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.

Does Cargoman require PHP to run?

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.

Is there a free version of Cargoman?

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.

How does Cargoman handle package updates?

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.

Ready to switch?

Migrate from Satis in minutes. Start with a free Community edition or go Pro for unlimited seats at $29/mo.