Satis composer repository manager with a Web UI

Installs: 7 833

Dependents: 0

Suggesters: 0

Security: 0

Stars: 396

Watchers: 19

Forks: 86

Open Issues: 7


3.2.7 2020-09-08 20:04 UTC


Satis Composer repository manager with a simple web UI.

Satis: list composer repositories Satis: add a new composer repository Satis: update an existing composer repository


Satisfy provides:

  • a Web UI: A CRUD to manage your satis configuration file
  • a simple security layer with a login form
  • a webhook endpoints for most popular version control systems
  • Satis itself

Satisfy ease your satis configuration management. It provides simple web UI over Satis to avoid a hand-editing of the satis.json configuration file. All repositories from a composer.lock file can also be imported via upload.

How it works ?

Basically, it just reads/writes the satis.json file and provides a web CRUD.

  • On each HTTP request, the satis.json is loaded.
  • If a write occurs in this file, a backup is made in var/satis/



  • Download composer wget
  • Install php composer.phar create-project playbloom/satisfy

Satis configuration

By default, the satis.json file is expected at the project root, but You can set another path under parameter satis_filename.

Application configuration

  • Customize app/config/parameters.yml according to your needs.


You can restrict the access setting admin.auth parameter (in app/config/parameters.yml) to true. Set authorized users in admin.users config array.

Run Satisfy

Create a webserver pointing to the public directory. Browse to »/admin/« to manage the satis.json. To serve the package.json it is required to run Satis first.

Satis packages definition generation

Since Satisfy does only manage the Satis configuration file, it is necessary to build the package definitions using Satis.

A bin shortcut to Satis is already included in Satisfy, so run the following command to generate the files in the web folder.

./bin/satis build



Satisfy is licensed under the MIT License - see the LICENSE file for details