Project Manager.

Project Manager makes it easier to keep track of your micro-services by grouping together related services; stop/start/build and set dependencies.

Article image for: Project Manager


Getting Started
Working with Services
Setting Config Options
Scripting Setup

Github Print

Somnambulist Project Manager

GitHub Actions release Build Status

Project Manager is designed to help organise micro-services based PHP projects. It incorporates commands for creating new services, libraries, and managing them. Project configuration is stored as YAML files that you commit to a git repo and share with your team. If you want to stop using it, delete the phar and the files and continue on. There is no special configuration needed in any project.


  • groups separate micro services projects together
  • gives a docker overview of running processes
  • supports dependencies between services
  • supports making new services and libraries (configurable source repositories)
  • supports multiple projects on a single machine
  • all configuration is by yaml files


Grab the phar archive and copy it to /usr/local/bin or add it to your path. Symlink the phar to spm or a.n.other name. Be sure to verify the SHA checksum with the ones in the release checksums text file.

Run: spm init to create the standard configuration (see later).

Or: brew install somnambulist-tech/somnambulist/spm

Removing Project Manager

If installed via brew: brew remove somnambulist-tech/somnambulist/spm

Remove any symlinks you have and delete the phar file. Delete the configuration folder from ~/.config/spm_projects.d/ or ~/.spm_projects.d/

unlink /usr/local/bin/spm && rm -v /usr/local/bin/somnambulist-project-manager.phar

Building the phar archive

To build the phar archive, first checkout / clone the project manager project. Run composer install and ensure that phar.readonly is set to 0 in your php.ini.

You can then run: bin/compile which will create a somnambulist-project-manager.phar file in the project root. The compile will output the SHA384 hash together with the file location / name.