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

# Overview

> Run the Payoes web app and API on your machine for development.

This section is for **developers who clone the Payoes repository** and want to run the stack locally. It is separate from merchant guides (Quickstart, API usage, checkout).

## What you will run locally

| Component                | Purpose                                    | How it starts          |
| ------------------------ | ------------------------------------------ | ---------------------- |
| **Web app** (`apps/web`) | Dashboard, checkout, REST API              | `npm run dev`          |
| **PostgreSQL**           | Organizations, payments, verification data | `docker compose up -d` |
| **MinIO**                | Organization logos                         | `docker compose up -d` |
| **Docs**                 | Mintlify preview on port 3001              | `npm run docs:dev`     |

After setup, open:

* [http://localhost:3000](http://localhost:3000) — web app
* [http://localhost:3001](http://localhost:3001) — docs (if you start them)
* [http://localhost:9001](http://localhost:9001) — MinIO console (`payoes` / `payoessecret`)

## Prerequisites

Install these before you start:

<AccordionGroup>
  <Accordion title="Required for the core app">
    * **Node.js 20+** and **npm**
    * **Git**
    * **Docker Desktop** (or Docker Engine + Compose) for PostgreSQL and MinIO
  </Accordion>

  <Accordion title="Additional features">
    * **Google OAuth credentials** — sign in with Google
    * **SMTP settings** — send team invitation and verification emails
    * **Persona API keys** — identity verification for production mode ([KYC setup](/local-setup/kyc-verification))
  </Accordion>

  <Accordion title="Stellar / Soroban (payments)">
    * **Stellar CLI** (`stellar`) and **Rust** (`cargo`) for contract deploy
    * See [Soroban escrow setup](/local-setup/soroban-escrow-setup)
  </Accordion>
</AccordionGroup>

## Repository layout

```
payoes/
├── apps/web/          # Next.js app (dashboard + API)
├── apps/docs/         # Mintlify documentation (this site)
├── packages/sdk/      # TypeScript SDK (placeholder)
├── docker-compose.yml # PostgreSQL + MinIO
```

## Recommended path

<Steps>
  <Step title="Getting started">
    Follow [Getting started](/local-setup/getting-started) to install dependencies, start Docker, configure `.env.local`, run migrations, and sign in.
  </Step>

  <Step title="Soroban escrow">
    Deploy the contract before creating payments. See [Soroban escrow setup](/local-setup/soroban-escrow-setup).
  </Step>

  <Step title="Environment variables">
    Use [Environment variables](/local-setup/environment-variables) as a reference when you enable OAuth, SMTP, or Persona KYC.
  </Step>

  <Step title="KYC verification">
    Needed to test production mode — see [KYC verification](/local-setup/kyc-verification).
  </Step>

  <Step title="Webhook retry worker">
    For self-hosted production with low traffic — see [Webhook retry worker](/local-setup/webhook-retry-worker).
  </Step>
</Steps>

<Note>
  Sandbox payments and checkout require a deployed Soroban escrow contract. Persona is only needed for production mode.
</Note>
