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

# Setup

> Set up the Ringlyra contributor environment with the devcontainer-first workflow.

<Note>
  If the steps below do not work for you, please open an issue on [GitHub](https://github.com/ringlyra-hq/ringlyra/issues).
</Note>

### Recommended: Devcontainer Setup

#### System Requirements

* Git
* Docker Desktop or another local Docker engine
* For the IDE path: VS Code with the [Dev Containers extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)
* For the terminal-only path: Node.js on your host so you can install the Dev Container CLI

1. Fork the Ringlyra repository at [https://github.com/ringlyra-hq/ringlyra](https://github.com/ringlyra-hq/ringlyra)
2. Clone **your fork**:

```bash theme={null}
git clone https://github.com/<GITHUB_HANDLE>/ringlyra
cd ringlyra
```

3. Start the devcontainer.

   In VS Code, open the repository and run **Dev Containers: Reopen in Container**.

   Without an IDE, use the Dev Container CLI:

```bash theme={null}
npm install -g @devcontainers/cli
devcontainer up --workspace-folder .
devcontainer exec --workspace-folder . bash
```

4. Wait for the first build to finish. The first build takes several minutes; subsequent opens are much faster.
5. Start the backend from a terminal inside the container:

```bash theme={null}
bash scripts/start_services_dev.sh
```

Without an IDE, run the same command from your host:

```bash theme={null}
devcontainer exec --workspace-folder . bash scripts/start_services_dev.sh
```

6. Start the UI from another terminal inside the container:

```bash theme={null}
cd ui
npm run dev -- --hostname 0.0.0.0
```

Without an IDE, use another host terminal:

```bash theme={null}
devcontainer exec --workspace-folder . bash -lc 'cd ui && npm run dev -- --hostname 0.0.0.0'
```

7. Verify that the backend is healthy:

```bash theme={null}
curl -X GET localhost:8000/api/v1/health
```

8. Open the app at `http://localhost:3000`.

### More Setup Options

* For what the devcontainer bootstrap does, rebuild guidance, logs, and personal install hooks, see [Devcontainer Workflow](/contribution/devcontainer).
* If you cloned `ringlyra-hq/ringlyra` directly instead of your fork, see [Fork Workflow](/contribution/fork-workflow) to reset `origin` and `upstream`.
* If you do not want to use the devcontainer, see [Host-managed Setup](/contribution/host-managed-setup).
