# Configuration (/docs/developer-guide/configuration)



## Deployment Modes [#deployment-modes]

Recall supports several deployment modes, controlled by the `DEPLOYMENT_MODE` environment variable:

| Mode    | Description                                                                  |
| ------- | ---------------------------------------------------------------------------- |
| `local` | Single-org, email/password auth. Best for individual use. &#x2A;*(default)** |
| `demo`  | Read-only mode for showcasing Recall without allowing changes.               |
| `cloud` | Managed hosting (coming soon).                                               |

## Environment Variables [#environment-variables]

When you run `recall init`, the CLI generates a `.env` file in your config directory. You can edit this file directly to change settings.

### Core Settings [#core-settings]

| Variable              | Description                                                                            | Default          |
| --------------------- | -------------------------------------------------------------------------------------- | ---------------- |
| `DEPLOYMENT_MODE`     | Deployment mode                                                                        | `local`          |
| `DATABASE_URL`        | PostgreSQL connection string                                                           | Generated by CLI |
| `BETTER_AUTH_SECRET`  | Secret key for session encryption                                                      | Auto-generated   |
| `DISABLE_TELEMETRY`   | Set to `1` to disable all telemetry. See [Telemetry](/docs/developer-guide/telemetry). | —                |
| `DEFAULT_DELAY_HOURS` | How often each enabled prompt is re-run against the AI models, in hours.               | `24`             |

<Callout type="warn">
  `DEFAULT_DELAY_HOURS` only takes effect for prompts scheduled **after** you change it. Prompts that are already scheduled keep the cadence they were created with, even after a restart. To apply a new cadence to an existing prompt, disable it and then re-enable it under **Settings → Prompts** — re-enabling reschedules it at the current `DEFAULT_DELAY_HOURS`.
</Callout>

### AI Provider Keys [#ai-provider-keys]

At least one provider is required for Recall to track visibility. See [Providers](/docs/user-guide/providers) for a full cost/capability breakdown and recommended setups.

| Variable               | Description                                                                                                                                                                                     |
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `BRIGHTDATA_API_TOKEN` | BrightData token — recommended scraper for ChatGPT + Google AI Mode. [Sign up](https://get.brightdata.com/67h1b7h0shcn)                                                                         |
| `OXYLABS_USERNAME`     | Oxylabs Web Scraper API username — alternative scraper for ChatGPT, Perplexity, Google AI Mode. [Sign up](https://oxylabs.go2cloud.org/aff_c?offer_id=7\&aff_id=2263\&url_id=32)                |
| `OXYLABS_PASSWORD`     | Oxylabs Web Scraper API password                                                                                                                                                                |
| `OLOSTEP_API_KEY`      | Olostep key — recommended scraper, powers most large-scale trackers. [Sign up](https://olostep.com/?ref=recall)                                                                                 |
| `OPENAI_API_KEY`       | OpenAI API key — enables ChatGPT (via API, not the consumer UI)                                                                                                                                 |
| `ANTHROPIC_API_KEY`    | Anthropic API key — enables Claude tracking                                                                                                                                                     |
| `OPENROUTER_API_KEY`   | OpenRouter key — one key for Claude + other hosted models                                                                                                                                       |
| `DATAFORSEO_LOGIN`     | DataForSEO login — optional, enables DataForSEO targets such as `google-ai-mode:dataforseo:online`, `chatgpt:dataforseo:online`, `perplexity:dataforseo:online`, and `gemini:dataforseo:online` |
| `DATAFORSEO_PASSWORD`  | DataForSEO password                                                                                                                                                                             |
| `SCRAPE_TARGETS`       | Comma-separated `model:provider[:version][:online]` entries. See [Providers](/docs/user-guide/providers#scrape_targets-format).                                                                 |

## Updating Configuration [#updating-configuration]

To change environment variables after initial setup:

```bash
# Edit the .env file
nano ~/.recall/.env

# Restart services to pick up changes
recall compose down
recall compose up -d
```

## Using an External Database [#using-an-external-database]

By default, `recall init` provisions a PostgreSQL container. To use an existing database instead, choose "Use existing Postgres" during `recall init` and provide your connection string when prompted.

Your database must be PostgreSQL 15 or later.
