> ## 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 only for human-required values such as LLM provider API keys and the external `DATABASE_URL`.

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

## 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.7/deployment/init-command">
    Workspace layout and resolution order
  </Card>

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

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

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