Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 16 additions & 9 deletions pages/home/configure/engine.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,25 @@ title: "Configuration"
description: "Arcade Engine Configuration"
---

import TableOfContents from "@/components/TableOfContents";

# Arcade Engine configuration

Arcade Engine's configuration is a [YAML file](https://yaml.org/) with the following sections:

- [`api`](#api-configuration) - Configures the server for specific protocols
- [`auth`](#auth-configuration) - Configures user authorization providers and token storage
- [`cache`](#cache-configuration) - Configures the short-lived cache
- [`llm`](#model-configuration) - Defines a collection of AI models available for routing
- [`security`](#security-configuration) - Configures security and encryption
- [`storage`](#storage-configuration) - Configures persistent storage
- [`telemetry`](#telemetry-configuration) - Configures telemetry and observability (OTEL)
- [`tools`](#tools-configuration) - Configures tools for AI models to use
<TableOfContents
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Before:
image

After:
image

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is probably outside of this PR, but I think we should indicate that these rows are links somehow, not just a table.

headers={["Section", "Description"]}
data={[
["API Configuration", "Configures the server for specific protocols"],
["Auth Configuration", "Configures user authorization providers and token storage"],
["Cache Configuration", "Configures the short-lived cache"],
["Model Configuration", "Defines a collection of AI models for routing"],
["Security Configuration", "Configures security and encryption"],
["Storage Configuration", "Configures persistent storage"],
["Telemetry Configuration", "Configures telemetry and observability (OTEL)"],
["Tools Configuration", "Configures tools for AI models to use"],
]}
/>

## Specify a config file

Expand Down Expand Up @@ -64,7 +71,7 @@ llm:

## API configuration

HTTP is the only supported protocol for Arcade Engine's API. The following configuration options are available:
HTTP is the supported protocol for Arcade Engine's API. The following configuration options are available:

- `api.development` _(optional, default: `false`)_ - Enable development mode, with more logging and simple [worker authentication](/home/configure/engine#http-worker-configuration)
- `api.http.host` _(default: `localhost`)_ - Address to which Arcade Engine binds its server (e.g., `localhost` or `0.0.0.0`)
Expand Down
92 changes: 60 additions & 32 deletions pages/home/configure/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,39 +3,67 @@ title: "Configuration Overview"
description: "Arcade Engine Configuration Overview"
---

import { Tabs } from "nextra/components";
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Before:
image

After:
image


# Configuration Overview

Arcade uses configuration files to manage engine settings and default values. When you install the Arcade Engine, two files are created:

- The `engine.yaml` file for engine configuration.
- The `engine.env` file for environment variables.

Let's explore each file to understand their purpose and how to locate them.

## Engine configuration file

The `engine.yaml` file controls Arcade Engine settings and manages supported models. It supports variable expansion so you can integrate secrets and environment values seamlessly. You can customize this file to suit your setup. For more details, check the [Engine Configuration](/home/configure/engine) page.

Choose your installation method to view the default location of `engine.yaml`:

<Tabs items={['macOS (Homebrew)', 'Ubuntu/Debian (APT)', 'Manual Download']}>
<Tabs.Tab>
```bash
$HOMEBREW_REPOSITORY/etc/arcade-engine/engine.yaml
```
</Tabs.Tab>
<Tabs.Tab>
```bash
/etc/arcade-ai/engine.yaml
```
</Tabs.Tab>
<Tabs.Tab>
```bash
$HOME/.arcade/engine.yaml
```
<Note>To manually download the engine.yaml, you can get an example from the [Configuration Templates](/home/configure/templates#engineyaml) and add it to `$HOME/.arcade/engine.yaml`.</Note>
</Tabs.Tab>
</Tabs>

## Engine environment file

The `engine.env` file contains default environment variables that power Arcade Engine. You can override these defaults by exporting your own variables or by editing the file directly.

Select your installation method below to see the default path for `engine.env`:

<Tabs items={['macOS (Homebrew)', 'Ubuntu/Debian (APT)', 'Manual Download']}>
<Tabs.Tab>
```bash
$HOMEBREW_REPOSITORY/etc/arcade-engine/engine.env
```
</Tabs.Tab>
<Tabs.Tab>
```bash
/etc/arcade-ai/engine.env
```
</Tabs.Tab>
<Tabs.Tab>
```bash
$HOME/.arcade/engine.env
```
<Note>To manually download the `engine.env`, refer to the [Configuration Templates](/home/configure/templates#engineenv).</Note>
</Tabs.Tab>
</Tabs>

# Configuration

## Configuration Files
On [installation](/home/install/local), Arcade creates an `engine.yaml` configuration file and an `engine.env` environment variable file containing default values.

See the [Specifying a Config File](/home/configure/engine#specify-a-config-file) for usage.

### Engine Configuration

The Engine configuration (`engine.yaml`) location varies based on installation method:
- **Homebrew**: `$HOMEBREW_REPOSITORY/etc/arcade-engine/engine.yaml` (commonly `/opt/homebrew/Cellar/etc/arcade-engine/engine.yaml`)
- **Apt**: `/etc/arcade-ai/engine.yaml`
- **Manual Download**: Manually downloaded configs can be added to `$HOME/.arcade/engine.yaml`

<Note>To manually download the engine.yaml, you can get an example from the [Configuration Templates](/home/configure/templates#engineyaml)</Note>

Engine configurations support variable expansion for [Secrets](/home/configure/engine#secrets) and [Environment Files](/home/configure/engine#dotenv-files).

You can edit the `engine.yaml` file to change configurations for the [Engine](/home/configure/engine) and [Supported Models](/home/configure/models).

### Engine environment file

The Engine environment file (`engine.env`) location varies based on installation method:
- **Homebrew**: `$HOMEBREW_REPOSITORY/etc/arcade-engine/engine.env` (commonly `/opt/homebrew/etc/arcade-engine/engine.env`)
- **Apt**: `/etc/arcade-ai/engine.env`
- **Manual Download**: Manually downloaded configs can be added to `$HOME/.arcade/engine.env`

<Note>To manually download the engine.env, you can get an example from the [Configuration Templates](/home/configure/templates#engineenv)</Note>


The installed file contains default variables to run the Engine locally, and can be changed or
overridden by exporting variables to your environment through the command line.



Expand Down
4 changes: 2 additions & 2 deletions pages/home/configure/templates.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ description: "Arcade Engine Configuration Templates"

# Engine Config Templates

**engine.yaml**
### engine.yaml
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

makes it so that i can link to this from other pages

```yaml file=<rootDir>/examples/code/home/configuration/engine/config_template.1.0.yaml

```

**engine.env**
### engine.env
```bash file=<rootDir>/examples/code/home/configuration/engine/engine.env

```
6 changes: 3 additions & 3 deletions pages/home/install/local.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ This will install a template engine configuration.
</Tabs.Tab>
<Tabs.Tab>
```
Windows support is coming soon!
Windows support is coming soon!
```
Want to see Windows support sooner? Show your interest by adding a 👍 to [this GitHub issue](https://github.com/ArcadeAI/arcade-ai/issues/258).

Expand Down Expand Up @@ -85,7 +85,7 @@ Edit the `engine.env` file to set the `OPENAI_API_KEY` environment variable:
OPENAI_API_KEY="<your_openai_api_key>"
```

See the [configuration overview](/home/configure/overview) for more information on how to configure Arcade Engine.
See the [configuration overview](/home/configure/overview) for more information on how to configure Arcade Engine and how to locate the `engine.env` file.

### Start the Engine and worker

Expand Down Expand Up @@ -113,7 +113,7 @@ To chat with the running Engine, in a separate terminal instance, run:
arcade chat -h localhost
```

You are now chatting with Arcade locally! To see an example of chatting, view the [quickstart](/home/quickstart).
You are now chatting with Arcade locally! To see an example of chatting, view the [quickstart](/home/custom-tools).

</Steps>

Expand Down
10 changes: 7 additions & 3 deletions pages/home/install/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,17 @@ description: "Installation options for Arcade"

Explore the different installation options for Arcade.

- [Local](/home/install/local)
- [Docker](/home/install/docker)
- Set up Arcade [locally](/home/install/local)
- Run Arcade in [Docker](/home/install/docker)
- Kubernetes (coming soon)

## Client

The `arcade` SDK can be installed with `pip` by following the [quickstart guide](/home/quickstart).
The Arcade Client can be installed with `pip` by following the [quickstart guide](/home/quickstart).

## SDK

The Arcade SDK can be installed with `pip` by following the [custom tools quickstart guide](/home/custom-tools).

## Engine

Expand Down
2 changes: 1 addition & 1 deletion src/components/TableOfContents.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import styles from "./TableOfContents.module.css";
function TableOfContents({ headers, data }) {
const handleRowClick = (firstColumnValue) => {
// Convert first column value to a valid ID format
const sectionId = firstColumnValue.toLowerCase().replace(/\s+/g, "");
const sectionId = firstColumnValue.toLowerCase().replace(/\s+/g, "-");
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so that table of contents section names can have spaces and still be linked to a specific section on the page

// Update the URL hash to navigate to the section
window.location.hash = `#${sectionId}`;
};
Expand Down