Repolode
composer

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. 1

    Install Satis with Composer

    composer create-project --keep-vcs --no-dev composer/satis:dev-main
  2. 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

#php#composer#package-repository#static-site#private-packages#dependency-management#hacktoberfest#packagist#static-packagist#static-repository

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