> ## Documentation Index
> Fetch the complete documentation index at: https://docs.2501.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuration

> How 2501 deployment configuration works

2501 is configured defaults-first. Every default (registry, ports, resources, Swarm and health settings) is embedded in the CLI binary, so you only specify what differs from those defaults.

## Configuration files

| File | Purpose | Required? |
| - | - | - |
| `env.engine` | Environment variables for the 2501 Engine | Yes |
| `env.command-center` | Environment variables for the Command Center UI | Yes |
| `2501-infra.yml` | Optional overlay for values that differ from the defaults | No |

<Note>
  A plain Docker Swarm deployment with an external database needs no `2501-infra.yml` at all, just the two environment files. The CLI fills in everything else from its embedded defaults.
</Note>

## The 2501-infra.yml overlay

`2501-infra.yml` is optional and deep-merged on top of the embedded defaults, so it only needs to hold the values you actually want to change. The CLI writes one for you when your deployment is non-default, such as a Kubernetes target, managed PostgreSQL, a stored registry key, or a pinned image tag.

To see exactly what the CLI will apply, run `2501 infra config` for the effective merged configuration, or `2501 infra config --defaults` for just the embedded defaults. This is the quickest way to confirm a value before deploying.

## Environment files

`env.engine` and `env.command-center` hold the environment variables for the Engine and the Command Center. The CLI generates, defaults, and copies everything it can, prompting for values it cannot supply, such as the external `DATABASE_URL` when you use your own PostgreSQL instance. Configure LLM providers and their credentials in [Command Center](/0.18/deployment/llm-providers).

<Tip>
  Contact your Account Executive at 2501 for the list of supported LLM providers and their configuration.
</Tip>

## Outbound proxy

Both the Engine and the Command Center honor `HTTP_PROXY`, `HTTPS_PROXY` and `NO_PROXY` for their outbound calls: the Engine for LLM providers and ticketing systems, the Command Center for the identity provider behind single sign-on. The Engine also sends MCP servers, OAuth providers and the requests of HTTP APIs that run on **Main executor** through it; an HTTP API that runs on a cluster connects directly from the cluster. Without these variables both dial out directly. The Command Center always reaches the Engine directly, so `NO_PROXY` does not need to list it.

* On Kubernetes, set `proxy.http_url`, `proxy.https_url` and `proxy.no_proxy` in `2501-infra.yml`. The CLI writes them into both services on every generate.
* On Docker Swarm, set the three variables yourself in `env.engine` and `env.command-center`.

Each proxy URL needs an explicit `http://` or `https://` scheme and no path. `NO_PROXY` matches exact hostnames, `.suffix` domains, or literal IPs; CIDR ranges are ignored. The proxy must be a plain `CONNECT` tunnel: a proxy that re-signs TLS fails certificate verification.

## Applying configuration

`2501 infra deploy` syncs your environment files to the current version's spec on every run, generating and defaulting what it can and prompting only for human-required values. There is no separate apply step.

<CardGroup cols={2}>
  <Card title="Init Command" icon="terminal" href="/0.18/deployment/init-command">
    Workspace layout and resolution order
  </Card>

  <Card title="Docker Swarm" icon="server" href="/0.18/deployment/docker-swarm">
    Deploy to production with Swarm
  </Card>

  <Card title="Kubernetes" icon="dharmachakra" href="/0.18/deployment/kubernetes">
    Deploy to a Kubernetes cluster
  </Card>

  <Card title="LLM Providers" icon="robot" href="/0.18/deployment/llm-providers">
    Configure provider API keys
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.