The Stack file

Indigo stores stack definitions in a Stack Name.indigostack file. This file contains the configuration for every service you add to the stack.

It is a macOS bundle, meaning it holds multiple files. In the simplest instance the indigostack bundle contains just one file, config.json, which is designed to be both human-readable and to work well in a version control system such as GIT. It can also be directly edited (with care.)

Because it is a bundle, it will appear in certain apps as a folder.

Sharing the stack file

You can share a stack with your whole team, typically by committing it to a GIT repository. It can also be shared using any other means (eg Dropbox).

Indigo will alert you if it detects a change to the stack file, usually as a result of a GIT pull, and will update your stack’s services and configuration as required.

Per-user configuration

The stack file does not store the filesystem location of any of its defined sites. This is because each user may store their site files in different locations. For example, one developer may use ~/Sites/mysite, while another may prefer ~/development/mysite.

Thus, the first time a user adds a shared stack to Indigo, they will need to tell Indigo where each site’s files reside. A warning triangle will appear beside any affected services, and the stack will not start until this step has been completed.

Databases

Database services (eg MySQL) are defined in the stack file, but any databases you create using these services are not contained in the stack file.

Thus, sharing the stack file does not share the databases created on one Mac with another.