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

# Quickstart

> Get started with Laravel Cloud and deploy your first application in minutes.

Select your framework to get started:

<Tabs>
  <Tab title="Laravel">
    ## Prerequisites

    * A [supported PHP version](/docs/runtimes#php)
    * Laravel 9.x or greater
    * A GitHub, GitLab, or Bitbucket account

    <Steps>
      <Step title="Go to your main Laravel Cloud dashboard page and select + New application.">
        <Frame>
          <img src="https://mintcdn.com/cloud/MkfTsQSKGENWqY-2/images/get-started.png?fit=max&auto=format&n=MkfTsQSKGENWqY-2&q=85&s=991c8fbd033af5bbcee59389aca4bc57" width="1920" height="1080" data-path="images/get-started.png" />
        </Frame>
      </Step>

      <Step title="Connect your Git provider">
        Select Connect to GitHub (or GitLab or Bitbucket). A new tab / window will open. Sign in to your Git provider and select the user / organization and repositories you want to give Laravel Cloud access to.

        <Frame>
          <img src="https://mintcdn.com/cloud/83RcCEaWR6PzmMFO/images/connect-github.png?fit=max&auto=format&n=83RcCEaWR6PzmMFO&q=85&s=510cf1bb45659cda3f5fb6d1b418b67c" width="1920" height="1080" data-path="images/connect-github.png" />
        </Frame>

        After completing the Git provider authentication flow, you will be redirected back to Laravel Cloud.
      </Step>

      <Step title="Create a new application">
        Select the repository you want to use, name your Laravel Cloud application, and select a Region where your application will deploy. Then, click Create Application.

        <Frame>
          <img src="https://mintcdn.com/cloud/83RcCEaWR6PzmMFO/images/create-your-application.png?fit=max&auto=format&n=83RcCEaWR6PzmMFO&q=85&s=29e9858f9ddc4968101e18e49a0f133e" width="1920" height="1080" data-path="images/create-your-application.png" />
        </Frame>

        Your application will be created along with a default environment. You will then be redirected to your application's default environment overview page.

        <Frame>
          <img src="https://mintcdn.com/cloud/83RcCEaWR6PzmMFO/images/application-canvas.png?fit=max&auto=format&n=83RcCEaWR6PzmMFO&q=85&s=d486413bf4d08c04293fbe45c5c2aa46" width="3024" height="1898" data-path="images/application-canvas.png" />
        </Frame>
      </Step>

      <Step title="Select the PHP runtime">
        In your environment settings, confirm the runtime is set to **PHP** and select the PHP version that matches your application's requirements.
      </Step>

      <Step title="Set build and deploy commands">
        Set your **build command** to install dependencies and compile assets:

        ```sh theme={null}
        composer install --no-dev && npm run build
        ```

        Set your **deploy command** to run database migrations on each deployment:

        ```sh theme={null}
        php artisan migrate --force
        ```
      </Step>

      <Step title="Add environment variables">
        At minimum, set your `APP_KEY`. You can generate one locally and paste the value into the Laravel Cloud dashboard:

        ```sh theme={null}
        php artisan key:generate --show
        ```

        If your application uses a database, connect a [MySQL](/docs/resources/databases/laravel-mysql) or [Postgres](/docs/resources/databases/postgres) resource from the infrastructure canvas; Laravel Cloud will automatically inject the connection environment variables.
      </Step>

      <Step title="Deploy">
        Click the **Deploy** button. Laravel Cloud will build your application, run your deploy command, and route traffic to the new instance.
      </Step>
    </Steps>

    Congratulations! Your Laravel application is live on Laravel Cloud! Continue with the [Laravel deploy guide](/docs/deploy-guides/laravel) to make it production-ready, or read about [environments](/docs/environments), [databases](/docs/resources/databases/laravel-mysql), [managed queues](/docs/queues), and [more](/docs/organizations).
  </Tab>

  <Tab title="Symfony">
    ## Prerequisites

    * A [supported PHP version](/docs/runtimes#php)
    * Symfony 7.4 LTS or 8.x
    * A GitHub, GitLab, or Bitbucket account

    <Steps>
      <Step title="Go to your main Laravel Cloud dashboard page and select + New application.">
        <Frame>
          <img src="https://mintcdn.com/cloud/MkfTsQSKGENWqY-2/images/get-started.png?fit=max&auto=format&n=MkfTsQSKGENWqY-2&q=85&s=991c8fbd033af5bbcee59389aca4bc57" width="1920" height="1080" data-path="images/get-started.png" />
        </Frame>
      </Step>

      <Step title="Connect your Git provider">
        Select Continue with GitHub, GitLab, or Bitbucket. A new tab / window will open. Sign in to your Git provider and select the user / organization and repositories you want to give Laravel Cloud access to.

        <Frame>
          <img src="https://mintcdn.com/cloud/83RcCEaWR6PzmMFO/images/connect-github.png?fit=max&auto=format&n=83RcCEaWR6PzmMFO&q=85&s=510cf1bb45659cda3f5fb6d1b418b67c" width="1920" height="1080" data-path="images/connect-github.png" />
        </Frame>

        After completing the Git provider authentication flow, you will be redirected back to Laravel Cloud.
      </Step>

      <Step title="Create a new application">
        Select the repository you want to use, name your Laravel Cloud application, and select a Region where your application will deploy. Then, click Create Application.

        <Frame>
          <img src="https://mintcdn.com/cloud/83RcCEaWR6PzmMFO/images/create-your-application.png?fit=max&auto=format&n=83RcCEaWR6PzmMFO&q=85&s=29e9858f9ddc4968101e18e49a0f133e" width="1920" height="1080" data-path="images/create-your-application.png" />
        </Frame>

        Your application will be created along with a default environment. You will then be redirected to your application's default environment overview page.

        <Frame>
          <img src="https://mintcdn.com/cloud/83RcCEaWR6PzmMFO/images/application-canvas.png?fit=max&auto=format&n=83RcCEaWR6PzmMFO&q=85&s=d486413bf4d08c04293fbe45c5c2aa46" width="3024" height="1898" data-path="images/application-canvas.png" />
        </Frame>

        Laravel Cloud automatically detects Symfony applications and configures `php bin/console` as the command runner.
      </Step>

      <Step title="Select the PHP runtime">
        In your environment settings, confirm the runtime is set to **PHP** and select the PHP version that matches your application's requirements.
      </Step>

      <Step title="Set build and deploy commands">
        Set your **build command** to install dependencies and compile assets:

        ```sh theme={null}
        composer install --no-dev && php bin/console asset-map:compile
        ```

        Set your **deploy command** to run database migrations on each deployment:

        ```sh theme={null}
        php bin/console doctrine:migrations:migrate --no-interaction
        ```
      </Step>

      <Step title="Add environment variables">
        At minimum, set `APP_ENV` and `APP_SECRET` in the Laravel Cloud dashboard:

        | Variable | Value |
        | - | - |
        | `APP_ENV` | `prod` |
        | `APP_SECRET` | A securely generated secret string |

        If your application uses a database, connect a [MySQL](/docs/resources/databases/laravel-mysql) or [Postgres](/docs/resources/databases/postgres) resource from the infrastructure canvas; Laravel Cloud will automatically inject the `DATABASE_URL` environment variable.

        <Note>If your application defines `DATABASE_URL` or other Cloud-injected variables in `.env.prod`, those values will take precedence over Cloud's runtime injection. Keep Cloud-managed variables out of `.env.prod` to avoid unexpected overrides.</Note>
      </Step>

      <Step title="Deploy">
        Click the **Deploy** button. Laravel Cloud will build your application, run your deploy command, and route traffic to the new instance.
      </Step>
    </Steps>

    Congratulations! Your Symfony application is live on Laravel Cloud! Continue reading to learn about [environments](/docs/environments), [databases](/docs/resources/databases/laravel-mysql), [managed queues](/docs/queues), and [more](/docs/organizations).
  </Tab>

  <Tab title="Next.js">
    ## Prerequisites

    * A [supported Node.js, Bun, or Deno version](/docs/runtimes#node-js-bun-and-deno)
    * A GitHub, GitLab, or Bitbucket account

    <Steps>
      <Step title="Go to your main Laravel Cloud dashboard page and select + New application.">
        <Frame>
          <img src="https://mintcdn.com/cloud/MkfTsQSKGENWqY-2/images/get-started.png?fit=max&auto=format&n=MkfTsQSKGENWqY-2&q=85&s=991c8fbd033af5bbcee59389aca4bc57" width="1920" height="1080" data-path="images/get-started.png" />
        </Frame>
      </Step>

      <Step title="Connect your Git provider">
        Select Continue with GitHub, GitLab, or Bitbucket. A new tab / window will open. Sign in to your Git provider and select the user / organization and repositories you want to give Laravel Cloud access to.

        <Frame>
          <img src="https://mintcdn.com/cloud/83RcCEaWR6PzmMFO/images/connect-github.png?fit=max&auto=format&n=83RcCEaWR6PzmMFO&q=85&s=510cf1bb45659cda3f5fb6d1b418b67c" width="1920" height="1080" data-path="images/connect-github.png" />
        </Frame>

        After completing the Git provider authentication flow, you will be redirected back to Laravel Cloud.
      </Step>

      <Step title="Create a new application">
        Select the repository you want to use, name your Laravel Cloud application, and select a Region where your application will deploy. You can also choose the Port to serve on. Then, click Create Application.

        <Frame>
          <img src="https://mintcdn.com/cloud/MkfTsQSKGENWqY-2/images/new-application-next.webp?fit=max&auto=format&n=MkfTsQSKGENWqY-2&q=85&s=9f4d86601f4c2ee94f19803450428957" width="1690" height="1028" data-path="images/new-application-next.webp" />
        </Frame>

        Your application will be created along with a default environment. You will then be redirected to your application's default environment overview page.

        <Frame>
          <img src="https://mintcdn.com/cloud/83RcCEaWR6PzmMFO/images/application-canvas.png?fit=max&auto=format&n=83RcCEaWR6PzmMFO&q=85&s=d486413bf4d08c04293fbe45c5c2aa46" width="3024" height="1898" data-path="images/application-canvas.png" />
        </Frame>
      </Step>

      <Step title="Adjust the Node.js version">
        In your environment settings, set the **Node version** to the appropriate one your application requires.
      </Step>

      <Step title="Set the build command">
        Set your **build command** to install dependencies and compile your application:

        ```sh theme={null}
        npm ci --audit false
        npm run build
        ```

        Laravel Cloud sets a sensible default start command for Next.js applications, running the `start` script defined in your `package.json` (or the `deno task start` command, if you're using the Deno runtime). You can override it from your deployment settings if needed.
      </Step>

      <Step title="Add environment variables">
        Add any environment variables your application requires in the Laravel Cloud dashboard. Variables prefixed with `NEXT_PUBLIC_` are available in the browser; all other variables are server-only.

        Laravel Cloud automatically sets `NODE_ENV=production` and `NEXT_PUBLIC_SITE_URL` (your application's URL) on every deployment. If your application uses a database or cache, connect a resource from the infrastructure canvas; Laravel Cloud will automatically inject the `DATABASE_URL` or `REDIS_URL` connection string.
      </Step>

      <Step title="Deploy">
        Click the **Deploy** button. Laravel Cloud will build your application and route traffic to the new instance.
      </Step>
    </Steps>

    Congratulations! Your Next.js application is live on Laravel Cloud! Continue with the [Next.js deploy guide](/docs/deploy-guides/nextjs) to make it production-ready, or read about [environments](/docs/environments), [databases](/docs/resources/databases/laravel-mysql), and [more](/docs/organizations).
  </Tab>

  <Tab title="Nuxt">
    ## Prerequisites

    * A [supported Node.js, Bun, or Deno version](/docs/runtimes#node-js-bun-and-deno)
    * A GitHub, GitLab, or Bitbucket account

    <Steps>
      <Step title="Go to your main Laravel Cloud dashboard page and select + New application.">
        <Frame>
          <img src="https://mintcdn.com/cloud/MkfTsQSKGENWqY-2/images/get-started.png?fit=max&auto=format&n=MkfTsQSKGENWqY-2&q=85&s=991c8fbd033af5bbcee59389aca4bc57" width="1920" height="1080" data-path="images/get-started.png" />
        </Frame>
      </Step>

      <Step title="Connect your Git provider">
        Select Continue with GitHub, GitLab, or Bitbucket. A new tab / window will open. Sign in to your Git provider and select the user / organization and repositories you want to give Laravel Cloud access to.

        <Frame>
          <img src="https://mintcdn.com/cloud/83RcCEaWR6PzmMFO/images/connect-github.png?fit=max&auto=format&n=83RcCEaWR6PzmMFO&q=85&s=510cf1bb45659cda3f5fb6d1b418b67c" width="1920" height="1080" data-path="images/connect-github.png" />
        </Frame>

        After completing the Git provider authentication flow, you will be redirected back to Laravel Cloud.
      </Step>

      <Step title="Create a new application">
        Select the repository you want to use, name your Laravel Cloud application, and select a Region where your application will deploy. You can also choose the Mode (server or static site generation) and the Port to serve on. Then, click Create Application.

        <Frame>
          <img src="https://mintcdn.com/cloud/MkfTsQSKGENWqY-2/images/new-application-nuxt.webp?fit=max&auto=format&n=MkfTsQSKGENWqY-2&q=85&s=f813cf137da77c2840f466ca8b60dcc8" width="1690" height="1028" data-path="images/new-application-nuxt.webp" />
        </Frame>

        Your application will be created along with a default environment. You will then be redirected to your application's default environment overview page.

        <Frame>
          <img src="https://mintcdn.com/cloud/83RcCEaWR6PzmMFO/images/application-canvas.png?fit=max&auto=format&n=83RcCEaWR6PzmMFO&q=85&s=d486413bf4d08c04293fbe45c5c2aa46" width="3024" height="1898" data-path="images/application-canvas.png" />
        </Frame>
      </Step>

      <Step title="Adjust the Node.js version">
        In your environment settings, set the **Node version** to the appropriate one your application requires.
      </Step>

      <Step title="Set the build command">
        Set your **build command** to install dependencies and compile your application:

        ```sh theme={null}
        npm ci --audit false
        npm run build

        # alternatively for static site generation
        # npx nuxt generate
        ```

        Laravel Cloud sets a sensible default start command for Nuxt applications, running `.output/server/index.mjs` with `node`, `bun run`, or `deno run -A` depending on your runtime. You can override it from your deployment settings if needed.

        <Note>
          Laravel Cloud runs Nitro's default `node-server` preset, which outputs to `.output/server/index.mjs`. If your `nuxt.config` was previously deployed to another host, remove any `nitro.preset` option (for example, `vercel`, `netlify`, or `cloudflare`) and any `NITRO_PRESET` environment variable. A leftover preset still builds successfully, but it produces output Laravel Cloud can't serve, and your deployment will complete without routing any traffic to your application.
        </Note>
      </Step>

      <Step title="Add environment variables">
        Add any environment variables your application requires in the Laravel Cloud dashboard. Variables prefixed with `NUXT_PUBLIC_` are available client-side; all other variables are server-only.

        Laravel Cloud automatically sets `NODE_ENV=production` and `NUXT_PUBLIC_SITE_URL` (your application's URL) on every deployment. If your application uses a database or cache, connect a resource from the infrastructure canvas; Laravel Cloud will automatically inject the `DATABASE_URL` or `REDIS_URL` connection string.
      </Step>

      <Step title="Deploy">
        Click the **Deploy** button. Laravel Cloud will build your application and route traffic to the new instance.
      </Step>
    </Steps>

    Congratulations! Your Nuxt application is live on Laravel Cloud! Continue with the [Nuxt deploy guide](/docs/deploy-guides/nuxt) to make it production-ready, or read about [environments](/docs/environments), [databases](/docs/resources/databases/laravel-mysql), and [more](/docs/organizations).
  </Tab>

  <Tab title="Node.js">
    ## Prerequisites

    * A [supported Node.js, Bun, or Deno version](/docs/runtimes#node-js-bun-and-deno)
    * An Express, Hono, or other Node.js application with a `package.json` file at the root of your repository
    * A GitHub, GitLab, or Bitbucket account

    <Steps>
      <Step title="Go to your main Laravel Cloud dashboard page and select + New application.">
        <Frame>
          <img src="https://mintcdn.com/cloud/MkfTsQSKGENWqY-2/images/get-started.png?fit=max&auto=format&n=MkfTsQSKGENWqY-2&q=85&s=991c8fbd033af5bbcee59389aca4bc57" width="1920" height="1080" data-path="images/get-started.png" />
        </Frame>
      </Step>

      <Step title="Connect your Git provider">
        Select Continue with GitHub, GitLab, or Bitbucket. A new tab / window will open. Sign in to your Git provider and select the user / organization and repositories you want to give Laravel Cloud access to.

        <Frame>
          <img src="https://mintcdn.com/cloud/83RcCEaWR6PzmMFO/images/connect-github.png?fit=max&auto=format&n=83RcCEaWR6PzmMFO&q=85&s=510cf1bb45659cda3f5fb6d1b418b67c" width="1920" height="1080" data-path="images/connect-github.png" />
        </Frame>

        After completing the Git provider authentication flow, you will be redirected back to Laravel Cloud.
      </Step>

      <Step title="Create a new application">
        Select the repository you want to use, name your Laravel Cloud application, and select a Region where your application will deploy. You can also choose the Port to serve on from the Advanced settings. Then, click Create Application.

        <Frame>
          <img src="https://mintcdn.com/cloud/ioT4oto6NHYVJ4R8/images/new-application-node-express.png?fit=max&auto=format&n=ioT4oto6NHYVJ4R8&q=85&s=f41154cb6b01db461057ac3ed7d95d3e" width="1600" height="814" data-path="images/new-application-node-express.png" />
        </Frame>

        Your application will be created along with a default environment. You will then be redirected to your application's default environment overview page.

        <Frame>
          <img src="https://mintcdn.com/cloud/83RcCEaWR6PzmMFO/images/application-canvas.png?fit=max&auto=format&n=83RcCEaWR6PzmMFO&q=85&s=d486413bf4d08c04293fbe45c5c2aa46" width="3024" height="1898" data-path="images/application-canvas.png" />
        </Frame>

        Laravel Cloud detects Express and Hono applications automatically from the dependencies in your `package.json` file. Applications that don't use a recognized framework are still supported as generic Node.js applications.
      </Step>

      <Step title="Adjust the Node.js version">
        In your environment settings, set the **Node version** to the appropriate one your application requires.
      </Step>

      <Step title="Set the build and start commands">
        Laravel Cloud pre-fills your **build command** to install your application's dependencies:

        ```sh theme={null}
        npm ci --audit false
        ```

        If your application has a compilation step, such as a TypeScript build, append `npm run build` to your build command.

        Laravel Cloud also pre-fills a **start command** based on the `start` script or `main` entry in your `package.json` file, such as `node server.js`. When neither can be resolved to a file, the start command falls back to `npm start` (or `bun run start` / `deno task start`, depending on your runtime). You can override it from your deployment settings if needed.
      </Step>

      <Step title="Add environment variables">
        Add any environment variables your application requires in the Laravel Cloud dashboard. Laravel Cloud sets these variables on your application process rather than writing a `.env` file, so read them from `process.env`; your application doesn't need a loader such as `dotenv`.

        Laravel Cloud automatically sets `NODE_ENV=production` and `APP_URL` (your application's URL) on every deployment. If your application uses a database or cache, connect a resource from the infrastructure canvas; Laravel Cloud will automatically inject the `DATABASE_URL` or `REDIS_URL` connection string.

        Your application must listen on the port Laravel Cloud provides via the `PORT` environment variable (`3000` by default):

        ```js theme={null}
        app.listen(process.env.PORT || 3000);
        ```
      </Step>

      <Step title="Deploy">
        Click the **Deploy** button. Laravel Cloud will build your application and route traffic to the new instance.
      </Step>
    </Steps>

    Congratulations! Your Node.js application is live on Laravel Cloud! Continue with the [Node.js deploy guide](/docs/deploy-guides/nodejs) to make it production-ready, or read about [environments](/docs/environments), [databases](/docs/resources/databases/laravel-mysql), and [more](/docs/organizations).
  </Tab>

  <Tab title="Go">
    ## Prerequisites

    * A [supported Go version](/docs/runtimes#go)
    * A `go.mod` file at the root of your repository
    * A GitHub, GitLab, or Bitbucket account

    <Steps>
      <Step title="Go to your main Laravel Cloud dashboard page and select + New application.">
        <Frame>
          <img src="https://mintcdn.com/cloud/MkfTsQSKGENWqY-2/images/get-started.png?fit=max&auto=format&n=MkfTsQSKGENWqY-2&q=85&s=991c8fbd033af5bbcee59389aca4bc57" width="1920" height="1080" data-path="images/get-started.png" />
        </Frame>
      </Step>

      <Step title="Connect your Git provider">
        Select Continue with GitHub, GitLab, or Bitbucket. A new tab / window will open. Sign in to your Git provider and select the user / organization and repositories you want to give Laravel Cloud access to.

        <Frame>
          <img src="https://mintcdn.com/cloud/83RcCEaWR6PzmMFO/images/connect-github.png?fit=max&auto=format&n=83RcCEaWR6PzmMFO&q=85&s=510cf1bb45659cda3f5fb6d1b418b67c" width="1920" height="1080" data-path="images/connect-github.png" />
        </Frame>

        After completing the Git provider authentication flow, you will be redirected back to Laravel Cloud.
      </Step>

      <Step title="Create a new application">
        Select the repository you want to use, name your Laravel Cloud application, and select a Region where your application will deploy. Then, click Create Application.

        <Frame>
          <img src="https://mintcdn.com/cloud/83RcCEaWR6PzmMFO/images/create-your-application.png?fit=max&auto=format&n=83RcCEaWR6PzmMFO&q=85&s=29e9858f9ddc4968101e18e49a0f133e" width="1920" height="1080" data-path="images/create-your-application.png" />
        </Frame>

        Your application will be created along with a default environment. You will then be redirected to your application's default environment overview page.

        <Frame>
          <img src="https://mintcdn.com/cloud/83RcCEaWR6PzmMFO/images/application-canvas.png?fit=max&auto=format&n=83RcCEaWR6PzmMFO&q=85&s=d486413bf4d08c04293fbe45c5c2aa46" width="3024" height="1898" data-path="images/application-canvas.png" />
        </Frame>

        Laravel Cloud detects your application as a Go application from its `go.mod` file and reads your Go version from the `go` directive at the top of that file.
      </Step>

      <Step title="Set the build command">
        Cloud pre-fills your **build command** for the detected entrypoint. An application with its `main` package at the repository root and no detected cgo requirements uses:

        ```sh theme={null}
        CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o app .
        ```

        Cloud adjusts the package path for entrypoints such as `cmd/server` and sets `CGO_ENABLED=1` when it detects cgo requirements. The default **start command**, `./app`, runs the resulting binary. If you change the output path or binary name, update the start command to match.
      </Step>

      <Step title="Add environment variables">
        Add any environment variables your application requires in the Laravel Cloud dashboard. If your application uses a database or cache, connect a resource from the infrastructure canvas; Laravel Cloud will automatically inject the `DATABASE_URL` or `REDIS_URL` connection string.

        Cloud supplies these variables through the process environment. Read them with `os.Getenv`.

        Your application must listen on the port Laravel Cloud provides via the `PORT` environment variable (`3000` by default).
      </Step>

      <Step title="Deploy">
        Click the **Deploy** button. Laravel Cloud will build your application and route traffic to the new instance.
      </Step>
    </Steps>

    Congratulations! Your Go application is live on Laravel Cloud! Continue with the [Go deploy guide](/docs/deploy-guides/go) to make it production-ready, or read about [environments](/docs/environments), [databases](/docs/resources/databases/laravel-mysql), and [more](/docs/organizations).
  </Tab>

  <Tab title="Python">
    ## Prerequisites

    * A [supported Python version](/docs/runtimes#python)
    * A `pyproject.toml`, `requirements.txt`, `Pipfile`, or `setup.py` file
    * A GitHub, GitLab, or Bitbucket account

    <Steps>
      <Step title="Go to your main Laravel Cloud dashboard page and select + New application.">
        <Frame>
          <img src="https://mintcdn.com/cloud/MkfTsQSKGENWqY-2/images/get-started.png?fit=max&auto=format&n=MkfTsQSKGENWqY-2&q=85&s=991c8fbd033af5bbcee59389aca4bc57" width="1920" height="1080" data-path="images/get-started.png" />
        </Frame>
      </Step>

      <Step title="Connect your Git provider">
        Select Continue with GitHub, GitLab, or Bitbucket. A new tab / window will open. Sign in to your Git provider and select the user / organization and repositories you want to give Laravel Cloud access to.

        <Frame>
          <img src="https://mintcdn.com/cloud/83RcCEaWR6PzmMFO/images/connect-github.png?fit=max&auto=format&n=83RcCEaWR6PzmMFO&q=85&s=510cf1bb45659cda3f5fb6d1b418b67c" width="1920" height="1080" data-path="images/connect-github.png" />
        </Frame>

        After completing the Git provider authentication flow, you will be redirected back to Laravel Cloud.
      </Step>

      <Step title="Create a new application">
        Select the repository you want to use, name your Laravel Cloud application, and select a Region where your application will deploy. Then, click Create Application.

        <Frame>
          <img src="https://mintcdn.com/cloud/83RcCEaWR6PzmMFO/images/create-your-application.png?fit=max&auto=format&n=83RcCEaWR6PzmMFO&q=85&s=29e9858f9ddc4968101e18e49a0f133e" width="1920" height="1080" data-path="images/create-your-application.png" />
        </Frame>

        Your application will be created along with a default environment. You will then be redirected to your application's default environment overview page.

        <Frame>
          <img src="https://mintcdn.com/cloud/83RcCEaWR6PzmMFO/images/application-canvas.png?fit=max&auto=format&n=83RcCEaWR6PzmMFO&q=85&s=d486413bf4d08c04293fbe45c5c2aa46" width="3024" height="1898" data-path="images/application-canvas.png" />
        </Frame>

        Laravel Cloud detects Django, FastAPI, and Flask applications automatically from your dependencies. Applications that don't use a recognized framework are still supported as generic Python applications.
      </Step>

      <Step title="Set the build command (optional)">
        Cloud installs your dependencies automatically during the build, using your lockfile or dependency manifest. It pre-fills additional steps when needed, such as installing a missing application server or collecting Django static files. You may edit these commands or add your own steps:

        ```sh theme={null}
        python manage.py collectstatic --noinput
        ```
      </Step>

      <Step title="Set the start command">
        Cloud pre-fills a **start command** using your detected framework, entrypoint, and a compatible server from your dependencies. Django and Flask default to Gunicorn; FastAPI defaults to Uvicorn. If you need to set the command yourself, these examples use the default servers:

        | Framework | Example start command |
        | - | - |
        | Django | `gunicorn <project>.wsgi --bind [::]:$PORT` |
        | FastAPI | `uvicorn main:app --host :: --port $PORT` |
        | Flask | `gunicorn app:app --bind [::]:$PORT` |
        | Generic Python | `python main.py` |

        <Note>
          Replace the example entrypoint with your application's module or callable. If your Django start command still contains `<project>`, Cloud requires you to replace it before deploying. Keep the server in your dependencies to control its version. For Uvicorn, use `--host ::` even if the pre-filled command uses `--host ''`; see the [Python deploy guide](/docs/deploy-guides/python#bind-to-the-right-interface).
        </Note>
      </Step>

      <Step title="Add environment variables">
        Add any environment variables your application requires in the Laravel Cloud dashboard. If your application uses a database or cache, connect a resource from the infrastructure canvas; Laravel Cloud will automatically inject the `DATABASE_URL` or `REDIS_URL` connection string.

        Cloud supplies these variables through the process environment. Read them from `os.environ`. For Django, configure the [environment and proxy settings](/docs/deploy-guides/python#django-environment-variables) before deploying.
      </Step>

      <Step title="Deploy">
        Click the **Deploy** button. Laravel Cloud will build your application and route traffic to the new instance.
      </Step>
    </Steps>

    Congratulations! Your Python application is live on Laravel Cloud! Continue with the [Python deploy guide](/docs/deploy-guides/python) to make it production-ready, or read about [environments](/docs/environments), [databases](/docs/resources/databases/laravel-mysql), and [more](/docs/organizations).
  </Tab>

  <Tab title="Ruby and Rails">
    ## Prerequisites

    * A [supported Ruby version](/docs/runtimes#ruby)
    * A committed `Gemfile` and `Gemfile.lock` in your application directory
    * A GitHub, GitLab, or Bitbucket account

    <Steps>
      <Step title="Create an application">
        From your Laravel Cloud dashboard, select **New application**, connect your Git provider, and choose your repository and deployment region. For a monorepo, select the directory containing your `Gemfile`.

        Laravel Cloud detects Ruby applications and recognizes Rails from its application configuration and framework files. If the repository scan reports a missing lockfile platform, run `bundle lock --add-platform aarch64-linux` locally, commit the lockfile, and refresh the scan.
      </Step>

      <Step title="Review the Ruby version">
        Declare your version in `.ruby-version`, or review the other [supported version declarations](/docs/runtimes#ruby). When your repository does not declare a version, you may choose one in your environment's **General Settings**.
      </Step>

      <Step title="Review build and start commands">
        Laravel Cloud installs gems automatically using your lockfile. For Rails applications with detected assets, it pre-fills asset compilation and any detected JavaScript dependency installation:

        ```sh theme={null}
        SECRET_KEY_BASE_DUMMY=1 bundle exec rails assets:precompile
        ```

        The default Rails start command uses your binstub when available:

        ```sh theme={null}
        bundle exec bin/rails server -b '::' -p $PORT
        ```

        Laravel Cloud uses a Procfile `web` command when one exists. Keep your server in the foreground, listening on `PORT` and accepting IPv6 connections. See the [Ruby and Rails deploy guide](/docs/deploy-guides/ruby) for Puma, Rack, and generic Ruby commands.
      </Step>

      <Step title="Configure Rails secrets and resources">
        New Rails environments include a generated `SECRET_KEY_BASE`. Preserve your existing value when migrating an application, and add `RAILS_MASTER_KEY` if production uses encrypted credentials.

        Connect a Postgres or MySQL database from the infrastructure canvas and include its `pg` or `mysql2` adapter in your production bundle. Laravel Cloud supplies `DATABASE_URL`. Review any separate [Solid Cache, Solid Queue, or Solid Cable connections](/docs/deploy-guides/ruby#solid-cache-solid-queue-and-solid-cable) before attaching the database.
      </Step>

      <Step title="Review the deploy command">
        For Rails applications using a database, set your deploy command to:

        ```sh theme={null}
        bin/rails db:prepare
        ```

        Attaching a database enables this command if you have kept the default deploy command. Add it yourself if you have customized that command.
      </Step>

      <Step title="Deploy">
        Click **Deploy**. Laravel Cloud builds your application, runs the deploy command, and routes traffic to the new deployment. Configure any job workers as [background processes](/docs/workers).
      </Step>
    </Steps>

    Congratulations! Your Ruby application is live on Laravel Cloud! Continue with the [Ruby and Rails deploy guide](/docs/deploy-guides/ruby) to make it production-ready, or read about [environments](/docs/environments), [databases](/docs/resources/databases/laravel-mysql), and [more](/docs/organizations).
  </Tab>
</Tabs>
