Dependency manager for PHP that declares, installs and updates project packages from Packagist.
composer/satis
A command-line tool that builds a static Composer package repository from configured sources, so PHP teams can host private or curated dependencies.
Open-source alternative to:Private Packagist
- Stars
- 3,305
- Forks
- 534
- Open issues
- 97
- Last commit
- yesterday
What is it?
Satis is a PHP tool for generating a static Composer repository. You give it a configuration file listing the packages you want, and it builds a set of static files that Composer can read like Packagist. The output can be hosted on any static file server, including locally or in a Docker container, with no database or dynamic backend required.
This gives teams control over which packages are distributed to their projects, which can help with security review and with keeping installs fast. Satis is run from source with PHP and built with a single command that takes a configuration file and an output directory. It can also run as a Docker image from Docker Hub or the GitHub container registry.
A purge command removes archive files that are no longer referenced by any composer.lock file. The project is MIT licensed and is maintained under the composer organization.
Key features
- 01Generates a static Composer repository from a configuration file.
- 02Hosts output on any static file server, including local or Docker setups.
- 03Provides a purge command to delete unreferenced package archives.
- 04Runs from source with PHP or as a Docker image.
Use cases
- Hosting private PHP packages for an internal organization without a paid registry.
- Distributing a curated set of dependencies to projects on GitHub Pages or a static host.
- Serving a controlled Composer mirror of selected public packages.
Quick start
- 1
Install Satis with Composer
composer create-project --keep-vcs --no-dev composer/satis:dev-main - 2
Build a repository from your configuration file
php bin/satis build <configuration-file> <output-directory>
Things to know
- Requires a recent PHP version; unsupported PHP versions are not allowed.
- Installs from the development branch (dev-main) rather than a tagged release.
In collections
Topics
FAQ
- What is satis?
- A command-line tool that builds a static Composer package repository from configured sources, so PHP teams can host private or curated dependencies. Satis is a PHP tool for generating a static Composer repository. You give it a configuration file listing the packages you want, and it builds a set of static files that Composer can read like Packagist. The output can be hosted on any static file server, including locally or in a Docker container, with no database or dynamic backend required.
- Is satis free to use? What license does it have?
- satis is open source under the MIT license. Check the license terms before using it in commercial products.
- Is satis still maintained?
- Actively maintained. The last commit to satis was on Nov 6, 2026.
- What can I use satis for?
- Hosting private PHP packages for an internal organization without a paid registry. Distributing a curated set of dependencies to projects on GitHub Pages or a static host. Serving a controlled Composer mirror of selected public packages.
- How do I install satis?
- Install Satis with Composer: composer create-project --keep-vcs --no-dev composer/satis:dev-main Build a repository from your configuration file: php bin/satis build <configuration-file> <output-directory>
- Where can I get satis?
- The source code and installation instructions are on GitHub: https://github.com/composer/satis
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A Composer plugin-style CLI that scans your PHP code to find required Composer packages that are never actually used.
A CLI tool that shows what changed in your dependencies after composer, npm, or pnpm updates, including changelogs and security advisories.
A modern Python package and dependency manager that manages venvs, lockfiles and builds based on PEP 621 and PEP 517 metadata.
A tool for creating isolated Python virtual environments so each project can keep its own set of packages.
Symfony is a PHP framework for building web and console applications, plus a set of reusable PHP components.