Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.


Source code repository management made simple.

Build Status

Packages is a PHP 5.6 and 7.x application providing an interface and tools for maintaining a private Composer repository. Packages extends Satis, adding a web frontend and useful management functionality like GitHub and GitLab integration.

Packages automatically registers GitLab, GitHub, and Bitbucket project webhooks to keep Satis up to date every time you push code. Packages also features a web management interface that allows for easy management of exposed packages and configured source control repositories.

Packages version 3 works on a plugin based system based around source code repositories. Packages can trigger, with each code push, many automated tasks like documentation generation or code analysis. The simple event-based architecture allows easy creation of new automation tasks.

View the docs online.



Download the latest release, or clone the repository.

git clone

Install dependencies

Switch to the project root directory and run composer install.

cd packages
composer install

Edit configuration

Copy config.yml.dist to config.yml and edit as appropriate.

cp config.yml.dist config.yml
vi config.yml

Generate the database schema

Packages uses Doctrine ORM to auto-generate the database schema for your configured platform.

bin/console orm:schema-tool:create

Running the application

Start PHP's built-in webserver to run the Packages web application with minimal effort.

# Visit http://localhost:8080 to see the landing page.
php -S localhost:8080 -t web

Start a Resque worker

For fully-automatic integration with GitHub, GitLab, and your Satis repository, you must always have at least one Resque worker running.

bin/console resque:worker:start

For more information on Resque workers, check the dedicated section.

Using the application

Read the usage and design documentation for an overview of Packages functionality.

Development/debug mode

Visit index_dev.php in your browser to view the site with the dev environment configuration. In this env, views and the service container are not cached, so changes made are immediately visible.


Check out the Contributing Guide for the recommended way to set up your development environment.

Some tips:

  • Views are written using Twig and stored in views/.
    • Views are cached in prod env; use http://localhost:8080/index_dev.php to develop.
    • All pages inherit from views/base.html.twig, except for
    • Public landing page views inherit from views/Default/base.html.twig.
  • Composer Components are used to manage front-end dependencies. The respective web/images/, web/js/bootstrap.min.js, and such are symlinks pointing to the real files installed by Composer in vendor/.
  • Check the documentation for additional information.

Docker support

Packages comes with an example docker-compose.yml that starts an nginx container and a Redis container, ready to get up and running quickly.

Visit the documentation to get started.


  1. index_dev.php contains a non-localhost block, comment it out when using Docker.
  2. Manage Resque and Satis using the bin/console command-line utility.
  • Build the Satis packages.json file with the satis:build command.
    bin/console satis:build
  • View queued Resque jobs in Redis with the resque:queue:list command.
    bin/console resque:queue:list
  • View active Resque workers with the resque:worker:list command.
    bin/console resque:worker:list
  • Start a Resque worker with resque:worker:start.
    bin/console resque:worker:start
  1. Check the Resque logs to see if Resque is working properly.
tail -f logs/resque.log