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

# Get started with Shipfastai in minutes

> Download your licensed product, configure your environment variables, and run the full Shipfastai stack locally using Docker Compose in under 10 minutes.

This guide walks you through getting Shipfastai running on your machine for the first time. By the end, you will have the full stack running locally — FastAPI backend on port 8000, Next.js frontend on port 3000, PostgreSQL via Supabase, and Redis — all orchestrated by Docker Compose.

<Steps>
  <Step title="Download your product">
    After purchasing a license from [shipfastai.dev](https://shipfastai.dev), log into your [Dashboard](https://shipfastai.dev/dashboard) to download your product:

    1. Go to **Dashboard** → **Your Products**
    2. Find your purchased tier (Basic, Pro, or Enterprise)
    3. Click **Download ZIP** — the file is password-protected with your license key
    4. Extract the ZIP using your license key as the password

    ```bash theme={null}
    # Navigate to your extracted product folder
    cd shipfastai-basic  # or shipfastai-pro, shipfastai-enterprise
    ```
  </Step>

  <Step title="Configure your environment">
    Copy the example environment file and fill in your credentials:

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

    Open `.env` and set the following required variables before starting the app:

    | Variable                        | Description                                                  |
    | ------------------------------- | ------------------------------------------------------------ |
    | `NEXT_PUBLIC_SUPABASE_URL`      | Your Supabase project URL                                    |
    | `NEXT_PUBLIC_SUPABASE_ANON_KEY` | Your Supabase anonymous/public key                           |
    | `SUPABASE_SERVICE_ROLE_KEY`     | Your Supabase service role key (keep secret!)                |
    | `STRIPE_SECRET_KEY`             | Your Stripe secret key (`sk_test_...` for development)       |
    | `STRIPE_WEBHOOK_SECRET`         | Your Stripe webhook signing secret (`whsec_...`)             |
    | `STRIPE_BASIC_PRICE_ID`         | Stripe price ID for Basic tier                               |
    | `STRIPE_PRO_PRICE_ID`           | Stripe price ID for Pro tier                                 |
    | `STRIPE_ENTERPRISE_PRICE_ID`    | Stripe price ID for Enterprise tier                          |
    | `BREVO_API_KEY`                 | API key from [Brevo](https://brevo.com) for marketing emails |
    | `NEXT_PUBLIC_APP_URL`           | Your app URL (e.g., `http://localhost:3000`)                 |

    The Supabase variables in `.env.example` connect to your Supabase project. Create a free project at [supabase.com](https://supabase.com) if you haven't already.

    ```bash theme={null}
    # Supabase configuration
    NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
    NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
    SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
    ```
  </Step>

  <Step title="Start with Docker">
    Start the full stack in the background with a single command:

    ```bash theme={null}
    docker-compose up -d
    ```

    Docker Compose starts the services: the FastAPI backend, the Next.js frontend, and Redis. On first run it will build the images, which takes a few minutes. Subsequent starts are fast.

    To watch the logs:

    ```bash theme={null}
    docker-compose logs -f
    ```

    To stop all services:

    ```bash theme={null}
    docker-compose down
    ```
  </Step>

  <Step title="Access the app">
    Once all containers are running, open the following URLs in your browser:

    | Service                      | URL                                                        |
    | ---------------------------- | ---------------------------------------------------------- |
    | Frontend                     | [http://localhost:3000](http://localhost:3000)             |
    | Backend API                  | [http://localhost:8000](http://localhost:8000)             |
    | Interactive API docs         | [http://localhost:8000/docs](http://localhost:8000/docs)   |
    | Alternative API docs (ReDoc) | [http://localhost:8000/redoc](http://localhost:8000/redoc) |

    The interactive API docs at `/docs` are generated automatically by FastAPI from your route definitions. Use them to test endpoints directly from the browser without any additional tooling.
  </Step>
</Steps>

<Tip>
  To run the stack without Docker, start the backend and frontend in separate terminals:

  ```bash theme={null}
  # Terminal 1 — backend
  cd backend
  python -m venv venv
  source venv/bin/activate   # on Windows: venv\Scripts\activate
  pip install -r requirements.txt
  uvicorn app.main:app --reload --port 8000
  ```

  ```bash theme={null}
  # Terminal 2 — frontend
  cd frontend
  pnpm install
  pnpm dev
  ```

  You'll need a running Supabase project for the database. The free tier at [supabase.com](https://supabase.com) is sufficient for local development.
</Tip>

<Note>
  The variables above cover the minimum required to start the app. For a full reference of every environment variable — including optional settings for Redis, email configuration, and deployment settings — see the [Configuration](/configuration/environment-variables) section.
</Note>
