strapi/docs/3.x.x/guides/deployment.md
2019-02-06 01:32:20 +02:00

2.2 KiB

Deployment

Docker

::: tip You can also deploy using Docker :::

The method below describes regular deployment using the built-in mechanisms.

#1 - Configure

Update the production settings with the IP and domain name where the project will be running.

Path — ./config/environments/production/server.json.

{
  "host": "domain.io", // IP or domain
  "port": 1337,
  "autoReload": {
    "enabled": false
  },
  "admin": {
    "path": "/dashboard" // We highly recommend to change the default `/admin` path for security reasons.
  }
}

In case your database is not running on the same server, make sure that the environment of your production database (./config/environments/production/database.json) is set properly.

If you are passing a number of configuration item values via environment variables which is always encouraged for production environment to keep application stateless, checkout the section for Dynamic Configuration. Here is a hint on how to do it for production, for the configuration mentioned above:

Path — ./config/environments/production/server.json.

{
  "host": "${process.env.APP_HOST || '127.0.0.1'}"
  "port": "${process.env.NODE_PORT || 1337}",
  "autoReload": {
    "enabled": false
  },
  "admin": {
    "path": "/dashboard" // We highly recommend to change the default `/admin` path for security reasons.
  }
}

⚠️ If you changed the path to access to the administration, the step #2 is required.

#2 - Setup (optional)

Run this following command to install the dependencies and build the project with your custom configurations.

cd /path/to/the/project
npm run setup

::: note To display the build logs use the --debug option npm run setup --debug. :::

#3 - Launch the server

Run the server with the production settings.

NODE_ENV=production npm start

::: warning We highly recommend to use pm2 to manage your process. :::

Advanced configurations

If you want to host the administration on another server than the API, please take a look at this dedicated section.