Concepts
Shipper is easier to understand when the core concepts are kept separate.
Provider
A provider is the deployment platform integration.
It answers questions like:
- how authentication works
- which resources can be managed
- which features are supported
- which provider-specific fields are required
Read: Providers
Project
A project is one deployable application.
It answers questions like:
- which app is being deployed
- which provider it uses
- where its code lives
- which defaults apply across environments
Read: Projects
Profile
A profile is one environment for a project.
It answers questions like:
- which branch is deployed
- which domain is used
- which databases exist for that environment
- whether infrastructure is reused or provisioned
Read: Profiles
Resource Lifecycle
A resource lifecycle describes how Shipper treats provider-managed resources over time.
That includes:
- create vs reuse
- update behavior
- cleanup and destroy behavior
- ownership boundaries for temporary infrastructure
Read: Resource Lifecycle
Practical Rule
Think about the config in this order:
- provider
- project
- profile
- feature-specific lifecycle