Satis Composer repository manager with a simple web UI.
Satisfy provides:
- a Web UI: A CRUD to manage your satis configuration file
- a simple security layer with a login form
- 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.
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 app/data/
- Download composer
wget http://getcomposer.org/composer.phar - Install
php composer.phar create-project playbloom/satisfy --stability=dev
Define your default/existing satis configuration.
By default, the satis.json file is expected at the project root.
Run echo '{"name":"My Repository","homepage":"http://packages.example.org","repositories":[]}' > satis.json to create an empty Satis configuration file.
- Define your configuration
cp app/config.php.dist app/config.php - Customize
app/config.phpaccording to your needs.
You can restrict the access setting auth.use_login_form parameter (in app/config.php) to true. Set authorized users in auth.users config array.
Use the following command to encode the password you want to use:
php -r "echo hash('sha1', 'mypassword');"
Create a webserver pointing to the web directory. Browse to »/admin/« to manage the satis.json. To serve the package.json it is required to run Satis first.
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 ./satis.json web/
Since it's an ultra-KISS project, it doesn't handle race conditions with several simultaneous writes. This could be avoided by extending the project with a simple SQLite layer for example, but then you have to manage the auto-generation of the satis.json file...
Ludovic Fleury - [email protected] - http://twitter.com/ludofleury Julius Beckmann - [email protected] - https://twitter.com/h4cc
KnpLabs and @ubermuda for the really KISS open-id layer in the marketplace repository
Satisfy is licensed under the MIT License - see the LICENSE file for details



