> ## Documentation Index
> Fetch the complete documentation index at: https://modal-devin.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Deploy multiple outposts

> Run independent Devin Outposts outposts from one Python project.

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:

```bash theme={null}
uvx modal-devin init
```

Choose a unique name in each run and accept deployment when prompted. Two runs named
`frontend` and `backend` create:

```text theme={null}
outposts/
├── frontend.py
└── backend.py
```

## Choose credential boundaries

Outposts with the same trust requirements may reference the same
[Modal Secret](https://modal.com/docs/guide/secrets):

```python theme={null}
devin_secret = modal.Secret.from_name("devin-outposts-token")
```

Use separate Secrets when outposts represent different
[Modal Environments](https://modal.com/docs/guide/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:

```bash theme={null}
uv run modal-devin deploy outposts/frontend.py
uv run modal-devin deploy outposts/backend.py
```

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:

```bash theme={null}
uv run modal-devin deploy
```

## 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.

<Tip>
  Prefer a stable execution-environment name such as `production-vpc` over a
  temporary implementation detail.
</Tip>
