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

# Configuration overview

> Configure providers, storage, authentication, memory, search, and deployment behavior.

Use the in-app Settings page for a personal instance. Use environment variables for repeatable deployments, centrally managed secrets, or instances where users must not change provider credentials.

## Where configuration comes from

| Method                  | Best for                         | Notes                              |
| ----------------------- | -------------------------------- | ---------------------------------- |
| Settings                | Personal and interactive use     | Stored in `/app_data`              |
| `.env` with Compose     | Servers and team deployments     | Loaded beside `docker-compose.yml` |
| `--env` with Docker Run | Small reproducible deployments   | Visible in container configuration |
| Platform secret manager | Cloud and production deployments | Preferred for credentials          |

Environment variables supplied to the container take precedence over interactive setup for the corresponding deployment configuration. Set `CAN_CHANGE_KEYS=false` when administrators—not application users—should control provider credentials.

## Start with persistence

Mount `/app_data` on durable storage. It contains presentations, uploaded assets, templates, settings, exports, the default database, authentication state, and local presentation memory.

```bash theme={null}
--volume "./app_data:/app_data"
```

Back up this location before upgrades. If you use an external database, back up both the database and `/app_data` because files and application state are not limited to database records.

## A practical `.env` file

The following example enables a hosted text provider, stock images, authentication, web search, and persistent local memory:

```dotenv theme={null}
PRESENTON_HTTP_HOST_PORT=5001

AUTH_USERNAME=admin
AUTH_PASSWORD=replace-with-a-long-password

LLM=openai
OPENAI_API_KEY=replace-with-your-key
OPENAI_MODEL=gpt-4.1

IMAGE_PROVIDER=pexels
PEXELS_API_KEY=replace-with-your-key

WEB_GROUNDING=true
WEB_SEARCH_PROVIDER=auto
WEB_SEARCH_MAX_RESULTS=5

MEM0_ENABLED=true
CAN_CHANGE_KEYS=false
DISABLE_ANONYMOUS_TRACKING=true
```

Place `.env` beside the repository's `docker-compose.yml`, then run:

```bash theme={null}
docker compose up production
```

<Warning>
  Do not commit `.env`, API keys, passwords, bearer tokens, or cloud credentials. Use restricted file permissions or your deployment platform's secret manager.
</Warning>

## Configuration map

<CardGroup cols={2}>
  <Card title="Configure by goal" icon="list-check" href="/open-source/v0.9.0-beta/configuration/recipes">
    Start with a feature and see the exact ports, variables, and actions it requires.
  </Card>

  <Card title="Text providers" icon="microchip" href="/open-source/v0.9.0-beta/configuration/text-providers">
    Configure hosted models, local runtimes, gateways, and compatible endpoints.
  </Card>

  <Card title="Images and web search" icon="images" href="/open-source/v0.9.0-beta/configuration/images-and-search">
    Select stock or generated images and optional research providers.
  </Card>

  <Card title="ComfyUI" icon="image" href="/open-source/v0.9.0-beta/configuration/comfyui">
    Connect a local or hosted ComfyUI server and API-format workflow.
  </Card>

  <Card title="Storage and processing" icon="database" href="/open-source/v0.9.0-beta/configuration/storage-and-processing">
    Configure the database, memory, document parsing, telemetry, and app data.
  </Card>

  <Card title="Authentication" icon="shield-keyhole" href="/open-source/v0.9.0-beta/configuration/authentication">
    Protect the UI, REST API, and MCP server with the single admin account.
  </Card>
</CardGroup>

## Keep provider roles separate

The text provider writes the deck. The image provider creates or finds visuals. The search provider supplies optional web context. They can be different services, which lets you combine a local text model with stock images or a hosted text model with private SearXNG search.

## Configuration rollout checklist

* Mount and back up `/app_data`.
* Select one text provider and test a short generation.
* Select an image provider or explicitly disable image generation.
* Keep web search off unless the workflow needs current information.
* Configure authentication before exposing the instance beyond localhost.
* Store provider credentials outside source control.
* Restart the deployment after changing environment variables.
* Re-run a short generation after provider or model changes.

<Warning>
  `localhost` inside a container points to that container. Use a reachable Compose service name, container hostname, or host gateway such as `host.docker.internal` for a service running on the Docker host.
</Warning>
