> For the complete documentation index, see [llms.txt](https://totalsoft.gitbook.io/graphql-rocket-generator/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://totalsoft.gitbook.io/graphql-rocket-generator/quick-start/generate-new-project.md).

# Generate new project

To get started with GraphQL Rocket generator run:

```
yo @totalsoft/graphql-rocket
```

{% hint style="danger" %}
Make sure you have the latest version of **GraphQL Rocket Generator** installed or else you will be prompted the following message:
{% endhint %}

![](https://github.com/osstotalsoft/generator-graphql-rocket/raw/master/assets/img/versionWarning.png)

You will be prompted to introduce the following information:

1. **The project name**&#x20;

   This will also be the name of the folder in which the new server will live. A valid project name, only includes lower and upper case letters, digits and '-' or '\_' separators! No special characters and whitespace are allowed and do not start or end with a separator!
2. **Include Multi-tenancy infrastructure** - by default is `false`.
   * Does your multi-tenancy implementation uses a single shared database? By default set to false.
   * Your multi-tenant database connection name.
3. **Use subscriptions**&#x20;

   By default is set to `false`.
4. **Messaging integration**.&#x20;

   By default is set to `false`.
5. **Authorization**&#x20;

   By default is set to false. This includes rights and permissions restriction layer.
6. **Default helm files** - by default are not included.
   * The name of your helm chart.&#x20;

     Provide a valid helm chart name, only use lower case letters, digits and '-' separators! No special characters and whitespace are allowed and do not start or end with a separator!
7. **Include Opentracing**&#x20;

   By default is set to `false`. Integrates with Jaeger.
8. **Quick start examples**&#x20;

   Some end to end examples will be included in your new generated project to help you get started.
9. **Package manager**&#x20;

   You can choose between `npm` and `yarn`

{% hint style="danger" %}
If you decided to use **Prisma** as you data layer technology, make sure you introspected your database and generated **Prisma Client** instance by running:

`npm run prisma`

You can find more information here -> [Setting up Prisma to an existing project](https://www.prisma.io/docs/getting-started/setup-prisma/add-to-existing-project/relational-databases-typescript-postgres/)
{% endhint %}

To start the application, simply run:&#x20;

`npm start`

{% hint style="info" %}
Your newly generated GraphQL server runs by default on port `4000`. To change it check-out `.env` variable `PORT`.
{% endhint %}
