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.