Generate one Modal application for each outpost. This keeps their deployments,
configuration, and resumable work independent.
Generate each application
Run the same interactive wizard once for each outpost:
Choose a unique name in each run and accept deployment when prompted. Two runs named
frontend and backend create:
Choose credential boundaries
Outposts with the same trust requirements may reference the same
Modal Secret:
Use separate Secrets when outposts represent different
Modal Environments or trust domains.
Create the additional Secret in Modal, update modal.Secret.from_name(...) in that
outpost’s generated application, and redeploy it. The selected credential must be
authorized for the corresponding outpost.
Customize independently
Each application can use different repositories, tools, compute, regions, schedules,
retention, credentials, and Modal tags. Edit and deploy each generated file normally,
either one at a time:
or all at once by omitting the file. deploy then deploys every *.py file in
--outposts-dir (outposts/ by default), continuing past a failed deployment and
reporting every outpost that failed at the end:
Use unique names
Give every deployment a distinct, durable worker name. Names scope its Modal
resources and resumable state; reusing a name can cause separate outposts to target
the same resources.
Prefer a stable execution-environment name such as production-vpc over a
temporary implementation detail.