Skip to main content
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.