> For the complete documentation index, see [llms.txt](https://harmonycms.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://harmonycms.gitbook.io/docs/components/harmonyflex/create-project.md).

# Create project

`create-project` is the command to execute to create a new HarmonyCMS project on your server.

{% hint style="info" %}
More information about this this command are available in the [Composer create-project documentation page](https://getcomposer.org/doc/03-cli.md#create-project).
{% endhint %}

When creating a new project, HarmonyFlex will perform some tasks before and after the execution of the default Composer tasks.

Consider the following example:

```bash
composer create-project harmony/skeleton my-project
```

If you execute that command, first of all Composer will create a new project from [HarmonyCMS skeleton repository](https://github.com/harmonycms/skeleton).

The first think Composer will do is loading HarmonyFlex plugin and processed like follow:

* Check connectivity to HarmonyCMS API:

<div align="center"><img src="https://27827895-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LOV0kx1MxYUy-wU6MNa%2F-LOcuEL9WtzyB2yIWYW5%2F-LOcuyHlkgg4nz9vldWR%2FDeepinScreenshot_20181012113441.png?alt=media&amp;token=3a99ad9a-289f-46e0-a69b-197dd1c8dc1d" alt=""></div>

* Authenticate you trough our Harmony platform, using an [OAuth2 Access Token](https://harmonycms.gitbook.io/platform/account/api-access)
* Ask you to specify a Project ID
* Processed installing your project and all dependencies (addons) binded to your project
* Configure your HarmonyCMS project:
  * Updating files `.env.dist` and `.env` with project's database settings

HarmonyFlex keeps tracks of the project and addons installed in a `harmony.lock` file, which must be committed to your code repository.
