# Your first BerryBox build (/docs/getting-started)



You need a GitHub organization, a private repository with a compatible GitHub Actions workflow, and permission to install the BerryBox App.

<Steps>
  <Step>
    ### Sign in and create a team [#sign-in-and-create-a-team]

    Open the [BerryBox dashboard](https://berrybox.io/dashboard). Sign in with GitHub or another available sign-in method, then create or choose your team. Anyone can sign up; there is no manual approval step.
  </Step>

  <Step>
    ### Connect your GitHub organization [#connect-your-github-organization]

    In the dashboard's GitHub setup, choose **Connect GitHub**. Authorize the App, select your organization and choose the private repositories it may access. Return to BerryBox and check that the installation is connected.

    Signing in with GitHub and installing the App are separate steps. [GitHub connection details](/docs/teams-and-billing/github).
  </Step>

  <Step>
    ### Add prepaid credit [#add-prepaid-credit]

    Open **Billing*&#x2A; and add at least **$20** through Stripe Checkout. Credit is available after payment is confirmed. You do not need a subscription.

    BerryBox reserves enough credit for a job's configured maximum runtime before launching it. A positive balance can still be too small for another reservation. Unused reserved credit is released when the job settles.
  </Step>

  <Step>
    ### Choose and enable a runner [#choose-and-enable-a-runner]

    Open **Runner settings** and enable `berrybox-2vcpu-ubuntu-2404`. It has 2 vCPU and 8 GiB of RAM. Check your team's concurrency limit and monthly budget.
  </Step>

  <Step>
    ### Update your workflow [#update-your-workflow]

    Change the compatible job's `runs-on` value:

    ```yaml title=".github/workflows/ci.yml"
    jobs:
      test:
        runs-on: berrybox-2vcpu-ubuntu-2404
        # Keep your existing permissions, steps and services.
    ```

    Use the dashboard's migration preview or [CLI migration](/docs/ci-runners/migration) to inspect a patch before applying it. Jobs that use other runner labels stay on those runners.
  </Step>

  <Step>
    ### Run and inspect the job [#run-and-inspect-the-job]

    Commit and push your change when ready. Open the workflow in GitHub Actions, then find the run in BerryBox's **Jobs** page. Check its result, queue time, duration and charge.

    A cold machine takes time to start. There is no always-on warm pool or guaranteed start time. You are charged for job runtime, not the wait for capacity.
  </Step>
</Steps>

## Prefer to hand this to your agent? [#prefer-to-hand-this-to-your-agent]

<AgentPrompt />

If the job does not start, use the [troubleshooting checklist](/docs/ci-runners/troubleshooting).
