PHPackages                             composer/satis - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. composer/satis

ActiveComposer-plugin[Utility &amp; Helpers](/categories/utility)

composer/satis
==============

Simple Repository Generator

1.0.0(8y ago)3.3k1.4M↓34%532[101 issues](https://github.com/composer/satis/issues)[3 PRs](https://github.com/composer/satis/pulls)16MITPHPPHP ^5.6 || ^7.0CI passing

Since Jun 7Pushed 3w ago86 watchersCompare

[ Source](https://github.com/composer/satis)[ Packagist](https://packagist.org/packages/composer/satis)[ Docs](https://github.com/composer/satis)[ RSS](/packages/composer-satis/feed)WikiDiscussions main Synced 2d ago

READMEChangelog (4)Dependencies (6)Versions (25)Used By (16)

Satis
=====

[](#satis)

A simple static Composer repository generator.

About
-----

[](#about)

Satis is a tool that allows PHP developers to create a private package repository for their projects' dependencies. It provides increased control over package distribution, improved security, and faster package installations, by creating a static Composer registry that can be hosted anywhere (even via Docker, locally).

Run from source
---------------

[](#run-from-source)

Satis requires a recent PHP version, it does not run with unsupported PHP versions. Check the `composer.json` file for details.

- Install Satis: `composer create-project --keep-vcs --no-dev composer/satis:dev-main`
- Build a repository: `php bin/satis build  `

Read the more detailed instructions in the [documentation](https://getcomposer.org/doc/articles/handling-private-packages-with-satis.md).

Run as Docker container
-----------------------

[](#run-as-docker-container)

> Note: use `composer/satis` for Docker Hub, `ghcr.io/composer/satis` for GitHub container registry.

Pull the image:

```
docker pull composer/satis
```

Run the image (with Composer cache from host):

```
docker run --rm --init -it \
  --user $(id -u):$(id -g) \
  --volume $(pwd):/build \
  --volume "${COMPOSER_HOME:-$HOME/.composer}:/composer" \
  composer/satis build
```

If you want to run the image without implicitly running Satis, you have to override the entrypoint specified in the `Dockerfile`:

```
--entrypoint /bin/sh
```

Purge
-----

[](#purge)

If you choose to archive packages as part of your build, over time you can be left with useless files. With the `purge` command, you can delete these files.

```
php bin/satis purge
```

> Note: don't do this unless you are certain your projects no longer reference any of these archives in their `composer.lock` files.

Updating
--------

[](#updating)

Updating Satis is as simple as running `git pull && composer install` in the Satis directory.

If you are running Satis as a Docker container, simply pull the latest image.

Contributing
------------

[](#contributing)

Please note that this project is released with a [Contributor Code of Conduct](https://www.contributor-covenant.org/version/2/0/code_of_conduct/). By participating in this project you agree to abide by its terms.

Fork the project, create a feature branch, and send us a pull request.

If you introduce a new feature, or fix a bug, please try to include a testcase.

While not required, it is appreciated if your contribution meets our coding standards.

You can check these yourself by running the tools we use:

```
# install tooling & dependencies
for d in tools/*; do composer --working-dir=$d install; done

# run php-cs-fixer
tools/php-cs-fixer/vendor/bin/php-cs-fixer fix

# run phpstan
tools/phpstan/vendor/bin/phpstan

# alternatively, use the shortcuts
composer phpstan
composer php-cs-fixer[-fix]
```

Authors
-------

[](#authors)

See the list of [contributors](https://github.com/composer/satis/contributors) who participate(d) in this project.

Community Tools
---------------

[](#community-tools)

- [satisfy](https://github.com/project-satisfy/satisfy) - Symfony based composer repository manager with a simple web UI.

Examples
--------

[](#examples)

- [eventum/composer](https://github.com/eventum/composer) - A simple static set of packages hosted in GitHub Pages
- [satis.spatie.be](https://alexvanderbist.com/2021/setting-up-and-securing-a-private-composer-repository/) - A brief guide to setting up and securing a Satis repository

License
-------

[](#license)

Satis is licensed under the MIT License - see the [LICENSE](https://github.com/composer/satis/blob/main/LICENSE) file for details

###  Health Score

64

—

FairBetter than 99% of packages

Maintenance62

Regular maintenance activity

Popularity69

Solid adoption and visibility

Community49

Growing community involvement

Maturity68

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~701 days

Recently: every ~793 days

Total

7

Last Release

200d ago

Major Versions

1.x-dev → 2.x-dev2021-06-15

2.x-dev → 3.x-dev2025-12-15

PHP version history (5 changes)1.0.0-alpha1PHP &gt;=5.3.2

1.0.0-alpha2PHP ^5.5 || ^7.0

1.0.0-alpha3PHP ^5.6 || ^7.0

1.x-devPHP ^7.0

2.x-devPHP ^7.3||^8.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/183678?v=4)[Jordi Boggiano](/maintainers/Seldaek)[@Seldaek](https://github.com/Seldaek)

![](https://www.gravatar.com/avatar/7b53fd135df4732d40488c0394fae263e128283081f2b833e3dc0a780b4b900d?d=identicon)[naderman](/maintainers/naderman)

---

Top Contributors

[![alcohol](https://avatars.githubusercontent.com/u/21414?v=4)](https://github.com/alcohol "alcohol (363 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (222 commits)")[![Seldaek](https://avatars.githubusercontent.com/u/183678?v=4)](https://github.com/Seldaek "Seldaek (103 commits)")[![JamesRezo](https://avatars.githubusercontent.com/u/6839893?v=4)](https://github.com/JamesRezo "JamesRezo (52 commits)")[![theimbender](https://avatars.githubusercontent.com/u/22452104?v=4)](https://github.com/theimbender "theimbender (36 commits)")[![naderman](https://avatars.githubusercontent.com/u/154844?v=4)](https://github.com/naderman "naderman (28 commits)")[![glensc](https://avatars.githubusercontent.com/u/199095?v=4)](https://github.com/glensc "glensc (16 commits)")[![staabm](https://avatars.githubusercontent.com/u/120441?v=4)](https://github.com/staabm "staabm (15 commits)")[![till](https://avatars.githubusercontent.com/u/27003?v=4)](https://github.com/till "till (14 commits)")[![GromNaN](https://avatars.githubusercontent.com/u/400034?v=4)](https://github.com/GromNaN "GromNaN (11 commits)")[![simesy](https://avatars.githubusercontent.com/u/188856?v=4)](https://github.com/simesy "simesy (10 commits)")[![shochdoerfer](https://avatars.githubusercontent.com/u/596449?v=4)](https://github.com/shochdoerfer "shochdoerfer (9 commits)")[![carusogabriel](https://avatars.githubusercontent.com/u/16328050?v=4)](https://github.com/carusogabriel "carusogabriel (9 commits)")[![CarsonF](https://avatars.githubusercontent.com/u/932566?v=4)](https://github.com/CarsonF "CarsonF (8 commits)")[![renanbr](https://avatars.githubusercontent.com/u/350222?v=4)](https://github.com/renanbr "renanbr (7 commits)")[![pavog](https://avatars.githubusercontent.com/u/4786628?v=4)](https://github.com/pavog "pavog (7 commits)")[![ph-fritsche](https://avatars.githubusercontent.com/u/39068198?v=4)](https://github.com/ph-fritsche "ph-fritsche (6 commits)")[![Copilot](https://avatars.githubusercontent.com/in/1143301?v=4)](https://github.com/Copilot "Copilot (6 commits)")[![onspli](https://avatars.githubusercontent.com/u/7120489?v=4)](https://github.com/onspli "onspli (5 commits)")[![Flyingmana](https://avatars.githubusercontent.com/u/237319?v=4)](https://github.com/Flyingmana "Flyingmana (5 commits)")

---

Tags

composerhacktoberfestpackagiststatic-packagiststatic-repositorycomposerpackagegeneratorstaticrepository

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/composer-satis/health.svg)

```
[![Health](https://phpackages.com/badges/composer-satis/health.svg)](https://phpackages.com/packages/composer-satis)
```

###  Alternatives

[matomo/matomo

Matomo is the leading Free/Libre open analytics platform

21.7k38.9k](/packages/matomo-matomo)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.6M574](/packages/shopware-core)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
