Skip to main content

Configuration Reference

devstack stores everything in devstack.config.json at the root of your project.

Example

{
"projectName": "my-project",
"composeFileName": "docker-compose.devstack.yml",
"services": {
"postgres": {
"enabled": true,
"image": "postgres:16",
"containerName": "my-project_postgres",
"port": 5432,
"username": "postgres",
"password": "postgres",
"database": "postgres",
"volume": true
},
"redis": {
"enabled": true,
"image": "redis:7",
"containerName": "my-project_redis",
"port": 6379,
"volume": true
}
}
}

Fields

Top-level

FieldTypeDescription
projectNamestringUsed as a prefix for container names
composeFileNamestringName of the generated compose file (default: docker-compose.devstack.yml)
servicesobjectMap of service name → service config

Service fields (common)

FieldTypeDescription
enabledbooleanWhether the service is included in compose output
imagestringDocker image and tag
containerNamestringFixed container name (set automatically)
portnumberHost port
volumebooleanWhether to create a named volume for persistence
restartstringDocker restart policy (e.g. unless-stopped)

Notes

  • Never edit this file manually unless you know what you're doing. Use devstack add and devstack remove instead.
  • The composeFileName field is there if you need to co-exist with an existing docker-compose.yml in your project.
  • Container names use projectName as a prefix so multiple projects can run simultaneously without conflicts.