# Quickstart

From a Laravel project on your machine to a live release in your own Scaleway project.


This page takes a Laravel application to its first live release. You need a Scaleway account, an organisation at Brewless and the Brewless command line client.

## 1. Connect Scaleway

In the console of your organisation, open **Providers** and connect Scaleway with an API key that is limited to one project. [Connecting providers](/applications/providers) walks through it.

## 2. Sign in from the command line

```bash
brewless login acme
```

`acme` is the name of your organisation, as in `acme.brewless.eu`. The client shows a code and a link. Approve it in the console and this machine is signed in. See [Signing in](/cli/signing-in).

## 3. Connect your project

In the root of your project:

```bash
brewless init
```

This detects the framework from your `composer.json`, creates the application at Brewless and writes `brewless.yml`:

```yaml brewless.yml
# Which application this is at Brewless. No secrets belong in this file.
organisation: acme
application: shop
framework: laravel
```

Commit this file. It holds no secrets.

## 4. Add and set up your environments

`init` goes on to ask which environments the application should have, `production` and `staging` unless you pick otherwise, in which region, and for each one which database, where its jobs wait and whether it gets a bucket for files. After one yes it makes that in your own accounts. See [init](/cli/commands#init).

If you said no, or add an environment in the console later, set it up with:

```bash
brewless provision production
```

If your containers exist already, adopt them on the **Resources** page instead. Both are described under [Setting an environment up](/applications/applications-and-environments#setting-an-environment-up).

> [!TIP]
> Coming from Laravel Vapor? With a `vapor.yml` in the project, `init` offers to start from it and writes the `brewless.yml` that says the same. See [Moving from Laravel Vapor](/getting-started/from-vapor).

## 5. Push your variables

Put the variables of the environment in `.env.production` and push them to your own Secret Manager. You can also paste them under **Variables** in the console, with **Show values**:

```bash
brewless env:push production
```

If setting up the environment named variables for you to add, such as `DB_USERNAME` and `DB_PASSWORD`, put them in this file too: a deploy is refused until they are there.

> [!WARNING]
> Do not commit `.env.production`. Its values belong in your Secret Manager and nowhere else; Brewless passes them on without keeping them.

## 6. Deploy

```bash
brewless deploy production
```

Only what is committed is deployed. The client prints each step as it finishes and ends with the address of the environment. [Deployments](/deployments/deployments) explains what happens in between.

The deploy sends your `brewless.yml` along. Sizes, scale, queues, release commands and plain variables you add there are applied with the next deploy; see [brewless.yml](/reference/brewless-yml).

## Next steps

- Put your [own domain](/running/domains) on the environment.
- Set how far the environment may [scale](/running/scaling).
- Invite your [team](/organisation/members).
