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

# File

The File config source reads Orchestrator configuration from a YAML file on the local filesystem. This is the simplest configuration source and the default for most deployments.

<Note>
  **Console terminology:** In the Maverics Console, Orchestrator instances and
  configuration delivery are managed through **Deployments**. When working directly
  with YAML, configuration is managed as files delivered via the `-config` flag or
  `MAVERICS_CONFIG` environment variable.
</Note>

## Overview

When using the File config source, the Orchestrator reads its configuration from a YAML file on disk at startup. The file path is specified via the `-config` CLI flag or the `MAVERICS_CONFIG` environment variable.

## Use Cases

* **Development and testing** -- load configuration from a local file during development without requiring external services
* **Single-node deployments** -- simple deployments where a single Orchestrator instance reads from a local config file
* **Air-gapped environments** -- deployments without network access to remote config sources

## Configuration

The File config source is configured via a CLI flag or environment variable, not in the YAML file itself.

```bash theme={null}
# Via CLI flag (recommended)
maverics -config /etc/maverics/maverics.yaml

# Via environment variable
export MAVERICS_CONFIG=/etc/maverics/maverics.yaml
maverics
```

The file path can be absolute or relative to the Orchestrator's working directory. If neither `-config` nor `MAVERICS_CONFIG` is set, the Orchestrator defaults to `/etc/maverics/maverics.yaml`.

The Orchestrator also supports loading configuration from a `.tar.gz` bundle:

```bash theme={null}
# Load from a config bundle
maverics -config /etc/maverics/config-bundle.tar.gz

# Optionally verify bundle signature
export MAVERICS_BUNDLE_PUBLIC_KEY_FILE=/etc/maverics/bundle-key.pem
maverics -config /etc/maverics/config-bundle.tar.gz
```

<Note>
  The File source does not support hot-reload. To apply configuration changes, restart the Orchestrator. For automatic config updates, use a [remote config source](/reference/orchestrator/configuration/config-sources) such as S3, Azure Blob, GCS, GitHub, or GitLab.
</Note>

## Console Download-Only Workflow

The Maverics Console supports a download-only workflow where no cloud storage service is configured. Instead, you build your deployment in the Console, download the config bundle, and point the Orchestrator to it locally.

<Steps>
  <Step title="Configure Download Only">
    In the Console, go to **Deployments**. Create a new deployment or select an existing one. Under **Host Environment**, click **Edit** next to **Configuration Storage**. Select **No cloud storage service configured** (download only). Click **Save**.
  </Step>

  <Step title="Publish and Download">
    Publish your deployment configuration. Download the config bundle (`maverics.tar.gz`) and the public key file from the Console.
  </Step>

  <Step title="Point the Orchestrator to the Bundle">
    Start the Orchestrator with the downloaded bundle:

    ```bash theme={null}
    export MAVERICS_BUNDLE_PUBLIC_KEY_FILE=/path/to/bundle-key.pem
    maverics -config /path/to/maverics.tar.gz
    ```
  </Step>
</Steps>

<Note>
  This workflow is useful when you want to use the Console UI for configuration authoring but manage config delivery yourself, such as in air-gapped environments or when integrating with existing deployment pipelines.
</Note>

## Configuration Reference

| Setting                                   | Type   | Default                       | Description                                                      |
| ----------------------------------------- | ------ | ----------------------------- | ---------------------------------------------------------------- |
| `-config` flag                            | string | `/etc/maverics/maverics.yaml` | Path to the YAML configuration file or `.tar.gz` bundle          |
| `MAVERICS_CONFIG` env var                 | string | `/etc/maverics/maverics.yaml` | Environment variable alternative to the `-config` flag           |
| `MAVERICS_BUNDLE_PUBLIC_KEY_FILE` env var | string | --                            | Path to a public key file for verifying config bundle signatures |

**Precedence:** The `-config` CLI flag takes priority over the `MAVERICS_CONFIG` environment variable.

## Troubleshooting

* **File not found** -- verify the file path is correct and the Orchestrator process has read permissions. Check with `ls -la /path/to/config.yaml`.
* **YAML parsing errors** -- validate YAML syntax before starting. Ensure indentation uses spaces (not tabs) and all keys are properly nested.
* **Config not updating** -- the File source does not support hot-reload. Restart the Orchestrator after changing the configuration file.

## Related Pages

<CardGroup cols={2}>
  <Card title="Config Sources" icon="folder-gear" href="/reference/orchestrator/configuration/config-sources">
    Overview of all configuration sources
  </Card>

  <Card title="Environment Variables" icon="terminal" href="/reference/orchestrator/configuration/config-sources/environment">
    Substitute environment variables in YAML config
  </Card>

  <Card title="Configuration Reference" icon="code" href="/reference/orchestrator/configuration">
    Complete configuration field reference
  </Card>

  <Card title="Publishing Deployment Configs" icon="upload" href="/reference/console/config-publishing">
    Bundle format, signing, and deployment lifecycle
  </Card>
</CardGroup>
