# Start the application

## `yarn start` or `npm run start`

This command executes a local deployment of your Magento 2 application.\
It does it in the following steps:

1. Prepare your project for Magento 2.
2. Install and compile the correct PHP version with required extensions to run Magento 2.
3. Deploy services, Redis, MySQL, ElasticSearch and Nginx, in Docker containers for Magento 2.
4. Install Magento 2 with Composer.
5. Setup Magento 2.
6. Open a browser with up and running Magento 2 store.

### **Command options**

#### **`-p, --port`**

A port to run your application on.

{% hint style="info" %}
By default, Create Magento App will select a random available port.
{% endhint %}

```bash
yarn start --port <port> # for Yarn
npm run start -- --port <port> # for NPM
```

#### **`-n, --no-open`**

Disable auto-open of a browser window at the end of the workflow.

```bash
yarn start --no-open # for Yarn
npm run start -- --no-open # for NPM
```

#### **`-d, --debug`**

Enable [XDebug](https://xdebug.org/) for debugging PHP.

```bash
yarn start --debug # for Yarn
npm run start -- --debug # for NPM
```

#### **`-s, --skip-setup`**

Skips Magento setup.

{% hint style="warning" %}
**Skipping Magento setup might result in conflict during runtime because Magento config will not be updated with a new port config.**\
This option can be used only if you **100% sure** that the ports configuration is the same.
{% endhint %}

In a nutshell, this option enables start command will just restart services and PHP-FPM, so if you need to restart the project it can be done in under 10 seconds\*.

```bash
yarn start --skip-setup # for Yarn
npm run start -- --skip-setup # for NPM
```

\* Tested on Ryzen 9 3900x system with NVME SSD with a result in 9.5s.

#### `--import-db`

{% hint style="info" %}
Since **magento-scripts\@1.3.0**
{% endhint %}

Imports database dump to the MySQL container.

Does the same thing as the [import-db](https://docs.create-magento-app.com/v1/getting-started/available-commands/import-db) command but allows to use it during start, so the project can be bootstrapped from zero in 1 command.

```bash
yarn start --import-db ./dump.sql # for Yarn
npm run start -- --import-db ./dump.sql # for NPM
```

#### `--recompile-php`

{% hint style="info" %}
Since **magento-scripts\@1.6.0**
{% endhint %}

Sometimes, on macOS when dynamic dependencies are updated, PHP might break.\
To fix this issue you need to manually delete the PHP binary in `~/.phpbrew/php/php-<version>`, so CMA will detect it and compile it.\
Now, you just need to pass this option in the start command and CMA will take care of everything.

```bash
yarn start --recompile-php # for Yarn
npm run start -- --recompile-php # for NPM
```

#### `-v, --verbose`

{% hint style="info" %}
Since **magento-scripts\@1.8.0**
{% endhint %}

This option will enable printing of logs from Magento installation, setup and upgrade tasks.

```bash
yarn start --verbose # for Yarn
npm run start -- --verbose # for NPM
```

## Usage example

```bash
yarn start # for Yarn
npm start # for NPM
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.create-magento-app.com/v1/getting-started/available-commands/start.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
