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

# Installation

> Run Nextoria Hub locally for development or evaluation.

## Prerequisites

Before you begin, ensure you have:

* **Node.js** ≥ 18.0 or **Bun** ≥ 1.0
* **Git** installed
* A **Stripe** account (for invoicing features)
* A **Stream Chat** account (for team messaging)

<Tip>
  We recommend using **Bun** for faster installs. All scripts in this guide use
  `bun`, but `npm` / `yarn` / `pnpm` work identically.
</Tip>

## Clone the Repository

```bash theme={null}
git clone https://github.com/AymanSdk/nexthub-agency-os.git
cd nexthub-agency-os
```

## Install Dependencies

```bash theme={null}
bun install
```

This installs all dependencies including React, Tailwind CSS, Framer Motion, shadcn/ui, and all Radix UI primitives.

## Environment Variables

Copy the example env file and fill in your keys:

```bash theme={null}
cp .env.example .env.local
```

| Variable                 | Required | Description                  |
| ------------------------ | -------- | ---------------------------- |
| `VITE_STRIPE_PUBLIC_KEY` | Yes      | Your Stripe publishable key  |
| `VITE_STREAM_API_KEY`    | Yes      | Stream Chat API key          |
| `VITE_GOOGLE_CLIENT_ID`  | Optional | For Google Drive integration |
| `VITE_APP_URL`           | Yes      | Base URL of your deployment  |

## Start the Development Server

```bash theme={null}
bun dev
```

The app will be available at [http://localhost:5173](http://localhost:5173).

<Note>
  Hot Module Replacement (HMR) is enabled by default via Vite. Changes to any
  component are reflected instantly in the browser without a full reload.
</Note>

## Build for Production

```bash theme={null}
bun build
```

The production build is output to the `dist/` folder. Preview it locally with:

```bash theme={null}
bun preview
```

## Run Tests

```bash theme={null}
bun test
```

The test suite uses **Vitest**. For watch mode during development:

```bash theme={null}
bun test:watch
```

## Linting

```bash theme={null}
bun lint
```

ESLint is configured with TypeScript-aware rules. Fix auto-fixable issues with:

```bash theme={null}
bun lint --fix
```

***

<Check>
  Installation complete! Next, [set up your
  workspace](/getting-started/workspace-setup) to configure branding, team
  members, and integrations.
</Check>
