> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developers.alephant.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.alephant.io/_mcp/server.

# Deployment Quickstart

> Install OpenCore with the repository's guided Docker Compose scripts, verify the services, and perform a controlled upgrade.

The guided installers prepare a Docker Compose deployment, generate the local environment file, select a free host port, pull the requested images, and start the services. Run the script that matches the host operating system.

## Prerequisites

| Requirement                    | macOS or Linux                                         | Windows                                                                                         |
| ------------------------------ | ------------------------------------------------------ | ----------------------------------------------------------------------------------------------- |
| Shell                          | Bash 3.2 or later                                      | PowerShell 5 or later                                                                           |
| Downloader                     | At least one of `curl` or `wget`                       | PowerShell `Invoke-WebRequest`, included with the supported PowerShell version                  |
| Containers                     | Running Docker daemon and Docker Compose 2.24 or later | Docker Desktop or another Linux-container Docker environment, with Docker Compose 2.24 or later |
| Recommended Standard resources | 10 GB Docker memory and 32 GB free disk                | 10 GB Docker memory and 32 GB free disk                                                         |
| Repository                     | A trusted local checkout of the OpenCore repository    | A trusted local checkout of the OpenCore repository                                             |

The Unix installer also uses OpenSSL to generate local secrets. Keep the generated `.env` file private and out of source control.

## Choose a mode

| Mode     | Services                                                               | Supported knowledge features                                                                                                        | How to select it                                                              |
| -------- | ---------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| Lite     | Does not start OpenSearch, Redis, model servers, or background workers | Connectors and RAG search are disabled; chat, tools, file uploads, Projects, Agent knowledge, and code interpreter remain available | Accept interactive choice `1`, or use `--lite` on Unix and `-Lite` on Windows |
| Standard | Starts the full search and indexing deployment                         | OpenSearch-backed search, connectors, indexing, and RAG are available                                                               | Run interactively and choose `2`                                              |

The interactive default is Lite. There is no Standard command-line switch, and `--no-prompt` or `-NoPrompt` accepts defaults, including Lite. Use the interactive mode prompt when installing Standard.

See [Deployment Modes](/opencore/deployment-modes) before choosing Lite for an environment that may later need connectors or indexed knowledge.

## Install

Use a neutral installation directory through `INSTALL_PREFIX`; the examples below create `opencore_data` beneath the directory where the script runs.

### macOS or Linux

From the repository root:

```bash
cd deployment/docker_compose
chmod +x install.sh
INSTALL_PREFIX=opencore_data ./install.sh
```

### Windows

From the repository root in PowerShell:

```powershell
Set-Location deployment\docker_compose
$env:INSTALL_PREFIX = "opencore_data"
.\install.ps1
```

The installers prompt for deployment mode and image tag, create `opencore_data/deployment/.env`, use basic authentication for a new deployment, and generate the local authentication secret. Common inputs are:

| Action                          | macOS or Linux    | Windows         | Behavior                                                                         |
| ------------------------------- | ----------------- | --------------- | -------------------------------------------------------------------------------- |
| Select Lite directly            | `--lite`          | `-Lite`         | Skips the Standard search and indexing services                                  |
| Enable Craft                    | `--include-craft` | `-IncludeCraft` | Enables Craft; cannot be combined with Lite                                      |
| Reuse downloaded configuration  | `--local`         | `-Local`        | Requires the expected configuration files to exist in the installation directory |
| Accept defaults without prompts | `--no-prompt`     | `-NoPrompt`     | Uses defaults, including Lite mode                                               |
| Preview without changes         | `--dry-run`       | `-DryRun`       | Prints the planned installation and exits                                        |
| Show diagnostic detail          | `--verbose`       | `-ShowVerbose`  | Enables more detailed installer output                                           |

On Unix, `--no-wait` returns after the containers start instead of waiting up to 600 seconds for health checks. Do not treat that return as proof that every service is ready.

## Verify services

1. From the directory where you ran the installer, inspect the generated deployment:

   ```bash
   cd opencore_data/deployment
   docker compose ps
   ```

2. Confirm the expected containers are running. Standard should include OpenSearch and the search/indexing workers; Lite intentionally omits them.

3. Open the URL printed by the installer. It starts at `http://localhost:3000` and selects the next free port when 3000 is already occupied.

4. Open `/auth/signup` on that host to create the first account. The first created user receives administrator privileges.

## Upgrade

Stop the current deployment with the same installation prefix before changing its image tag.
Return to `deployment/docker_compose` in the repository checkout before running these commands.

### macOS or Linux

```bash
INSTALL_PREFIX=opencore_data ./install.sh --shutdown
INSTALL_PREFIX=opencore_data ./install.sh
```

### Windows

```powershell
$env:INSTALL_PREFIX = "opencore_data"
.\install.ps1 -Shutdown
.\install.ps1
```

When the installer finds the existing `.env`, choose `update`, select the target tag, and repeat the original Lite or Standard selection. Floating tags are pulled and recreated; a pinned tag also causes the installer to obtain matching deployment configuration when downloads are enabled. Verify service health again after the restart.

## Troubleshooting

| Symptom                                      | Check                                                                                                       |
| -------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| The installer refuses a configuration change | Services are still running. Use the script's shutdown option with the same `INSTALL_PREFIX`, then rerun it. |
| Docker Compose cannot parse `env_file`       | Upgrade Docker Compose to 2.24 or later.                                                                    |
| The expected page is not on port 3000        | Read the final installer output; it automatically chooses the next available host port.                     |
| A Standard knowledge feature is missing      | Confirm that Standard was selected. Lite does not start OpenSearch, connectors, or RAG search.              |
| A service is unhealthy                       | Run `docker compose ps` and `docker compose logs <service>` from the generated deployment directory.        |