# Command Line Interface (CLI)
Strapi comes with a full featured Command Line Interface (CLI) which lets you scaffold and manage your project in seconds.
# strapi new
Create a new project.
strapi new <name> options: [--no-run|--use-npm|--debug|--quickstart|--dbclient=<dbclient> --dbhost=<dbhost> --dbport=<dbport> --dbname=<dbname> --dbusername=<dbusername> --dbpassword=<dbpassword> --dbssl=<dbssl> --dbauth=<dbauth> --dbforce]
Copied to clipboard!
strapi new <name>
Generates a new project called <name> and installs the default plugins through the npm registry.strapi new <name> --debug
Will display the full error message if one is fired during the database connection.strapi new <name> --quickstart
Use the quickstart system to create your app.strapi new <name> --quickstart --no-run
Use the quickstart system to create your app, and do not start the application after creation.strapi new <name> --dbclient=<dbclient> --dbhost=<dbhost> --dbport=<dbport> --dbname=<dbname> --dbusername=<dbusername> --dbpassword=<dbpassword> --dbssl=<dbssl> --dbauth=<dbauth> --dbforce
Generates a new project called <name> and skip the interactive database configuration and initialize with these options.
- <dbclient> can be
postgres
,mysql
. - --dbforce Allows you to overwrite content if the provided database is not empty. Only available for
postgres
,mysql
, and is optional.
- <dbclient> can be
# strapi develop
Alias: dev
Start a Strapi application with autoReload enabled.
Strapi modifies/creates files at runtime and needs to restart when new files are created. To achieve this, strapi develop
adds a file watcher and restarts the application when necessary.
strapi develop options: [--no-build |--watch-admin |--browser ]
Copied to clipboard!
- strapi develop
Starts your application with the autoReload enabled - strapi develop --no-build
Starts your application with the autoReload enabled and skip the administration panel build process - strapi develop --watch-admin
Starts your application with the autoReload enabled and the front-end development server. It allows you to customize the administration panel. - strapi develop --watch-admin --browser 'google chrome'
Starts your application with the autoReload enabled and the front-end development server. It allows you to customize the administration panel. Provide a browser name to use instead of the default one,false
means stop opening the browser.
️❗️ WARNING
You should never use this command to run a Strapi application in production.
# strapi start
Start a Strapi application with autoReload disabled.
This commands is there to run a Strapi application without restarts and file writes (aimed at production usage).
Certain features are disabled in the strapi start
mode because they require application restarts.
Allowed environment variables:
Property | Description | Type | Default |
---|---|---|---|
STRAPI_HIDE_STARTUP_MESSAGE | If true then Strapi will not show startup message on boot. Values can be true or false | string | false |
STRAPI_LOG_LEVEL | Values can be 'fatal', 'error', 'warn', 'info', 'debug', 'trace' | string | debug |
STRAPI_LOG_TIMESTAMP | Enables or disables the inclusion of a timestamp in the log message. Values can be true or false | string | false |
STRAPI_LOG_FORCE_COLOR | Values can be true or false | string | true |
STRAPI_LOG_PRETTY_PRINT | If pino-pretty module will be used to format logs. Values can be true or false | string | true |
# strapi build
Builds your admin panel.
strapi build options: [--no-optimization]
Copied to clipboard!
- strapi build
Builds the administration panel and minimizing the assets - strapi build --clean
Builds the administration panel and delete the previous build and .cache folders - strapi build --no-optimization
Builds the administration panel without minimizing the assets. The build duration is faster.
# strapi watch-admin
Starts the admin server. Strapi should already be running with strapi develop
.
strapi watch-admin options: [--browser <name>]
Copied to clipboard!
# strapi configuration:dump
Alias: config:dump
Dumps configurations to a file or stdout to help you migrate to production.
The dump format will be a JSON array.
strapi configuration:dump Options: -f, --file <file> Output file, default output is stdout -p, --pretty Format the output JSON with indentation and line breaks (default: false)
Copied to clipboard!
Examples
strapi configuration:dump -f dump.json
strapi config:dump --file dump.json
strapi config:dump > dump.json
All these examples are equivalent.
✋ CAUTION
When configuring your application you often enter credentials for third party services (e.g authentication providers). Be aware that those credentials will also be dumped into the output of this command. In case of doubt, you should avoid committing the dump file into a versioning system. Here are some methods you can explore:
- Copy the file directly to the environment you want and run the restore command there.
- Put the file in a secure location and download it at deploy time with the right credentials.
- Encrypt the file before committing and decrypt it when running the restore command.
# strapi configuration:restore
Alias: config:restore
Restores a configuration dump into your application.
The input format must be a JSON array.
strapi configuration:restore Options: -f, --file <file> Input file, default input is stdin -s, --strategy <strategy> Strategy name, one of: "replace", "merge", "keep". Defaults to: "replace"
Copied to clipboard!
Examples
strapi configuration:restore -f dump.json
strapi config:restore --file dump.json -s replace
cat dump.json | strapi config:restore
strapi config:restore < dump.json
All these examples are equivalent.
Strategies
When running the restore command, you can choose from three different strategies:
- replace: Will create missing keys and replace existing ones.
- merge: Will create missing keys and merge existing keys with their new value.
- keep: Will create missing keys and keep existing keys as is.
# strapi admin:reset-user-password
Alias admin:reset-password
Reset an admin user's password. You can pass the email and new password as options or set them interactivly if you call the command without passing the options.
Example
strapi admin:reset-user-password --email=chef@strapi.io --password=Gourmet1234
Copied to clipboard!
Options
Option | Type | Description |
---|---|---|
-e, --email | string | The user email |
-p, --password | string | New password for the user |
-h, --help | display help for command |
# strapi generate
Run a fully interactive CLI to generate APIs, controllers, content-types, plugins, policies, middlewares and services.
strapi generate
Copied to clipboard!
# strapi templates:generate
Create a template from the current strapi project
strapi templates:generate <path>
Copied to clipboard!
strapi templates:generate <path>
Generates a Strapi template at<path>
Example:
strapi templates:generate ../strapi-template-name
will copy the required files and folders to atemplate
directory inside../strapi-template-name
# strapi routes:list
Display a list of all the available routes.
strapi routes:list
Copied to clipboard!
# strapi policies:list
Display a list of all the registered policies.
strapi policies:list
Copied to clipboard!
# strapi middlewares:list
Display a list of all the registered middlewares.
strapi middlewares:list
Copied to clipboard!
# strapi content-types:list
Display a list of all the existing content-types.
strapi content-types:list
Copied to clipboard!
# strapi hooks:list
Display a list of all the available hooks.
strapi hooks:list
Copied to clipboard!
# strapi controllers:list
Display a list of all the registered controllers.
# strapi services:list
Display a list of all the registered services.
strapi services:list
Copied to clipboard!
# strapi install
Install a plugin in the project.
strapi install <name>
Copied to clipboard!
strapi install <name>
Installs a plugin called <name>.Example:
strapi install graphql
will install the pluginstrapi-plugin-graphql
✋ CAUTION
Some plugins have admin panel integrations, your admin panel might have to be rebuilt. This can take some time.
# strapi uninstall
Uninstall a plugin from the project.
strapi uninstall <name> options [--delete-files]
Copied to clipboard!
strapi uninstall <name>
Uninstalls a plugin called <name>.Example:
strapi uninstall graphql
will remove the pluginstrapi-plugin-graphql
strapi uninstall <name> --delete-files
Uninstalls a plugin called <name> and removes the files in./extensions/name/
Example:
strapi uninstall graphql --delete-files
will remove the pluginstrapi-plugin-graphql
and all the files in./extensions/graphql
✋ CAUTION
Some plugins have admin panel integrations, your admin panel might have to be rebuilt. This can take some time.
# strapi console
Start the server and eval commands in your application in real time.
strapi console
Copied to clipboard!
# strapi version
Print the current globally installed Strapi version.
strapi version
Copied to clipboard!
# strapi help
List CLI commands.
strapi help
Copied to clipboard!