From 1983e55807372671d9df1e01fc7d10e8740e99f0 Mon Sep 17 00:00:00 2001 From: Jim LAURIE Date: Thu, 21 Nov 2019 14:35:56 +0100 Subject: [PATCH] Add process manager guide --- docs/.vuepress/config.js | 1 + docs/3.0.0-beta.x/guides/process-manager.md | 83 +++++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 docs/3.0.0-beta.x/guides/process-manager.md diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index d5bac8d3b2..d535622027 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -186,6 +186,7 @@ module.exports = { '/3.0.0-beta.x/guides/update-version', '/3.0.0-beta.x/guides/databases', '/3.0.0-beta.x/guides/deployment', + '/3.0.0-beta.x/guides/process-manager', '/3.0.0-beta.x/guides/jwt-validation', '/3.0.0-beta.x/guides/error-catching', '/3.0.0-beta.x/guides/external-data', diff --git a/docs/3.0.0-beta.x/guides/process-manager.md b/docs/3.0.0-beta.x/guides/process-manager.md new file mode 100644 index 0000000000..686fd796eb --- /dev/null +++ b/docs/3.0.0-beta.x/guides/process-manager.md @@ -0,0 +1,83 @@ +--- +sidebarDepth: 2 +--- + +# Process manager + +In this guide we will see how you can start a Strapi application using a process manager. + +::: tip +In this example we will use [PM2](https://pm2.keymetrics.io/). +::: + +## Install PM2 + +PM2 allows you to keep your Strapi project alive and to reload it without downtime. + +You will install PM2 globally + +:::: tabs + +::: tab yarn +`yarn global add pm2` +::: + +::: tab npm +`npm install pm2 -g` +::: + +:::: + +## Basic usage + +### Starting with server.js file + +The basic usage to start an application with PM2 will be to run a command like this `pm2 start server.js`. + +But here we are facing an issue. In your project you don't have a `.js` file to run your Strapi application. + +So first let's create a `server.js` file that will let you run the `pm2` command. + +**Path —** `./server.js` + +```js +const strapi = require('strapi'); +strapi().start(); +``` + +Now you will be able to start your server by running `pm2 start server.js`. + +### Starting with strapi command + +By default there is two important commands. + +- `yarn develop` to start your project in development mode. +- `yarn start` to start your app for production. + +You can also start your process manager using the `yarn start` command. + +`pm2 start npm --no-automation --name app -- run start` + +## Configuration file + +PM2 let you create a config file to save all information to start your sever properly at anytime. + +By running `pm2 init` it will init an `ecosystem.config.js` in your application. + +Then replace the content of this files by the following code + +```js +module.exports = { + apps: [ + { + name: 'app', + script: 'npm', + args: 'start', + }, + ], +}; +``` + +And then run `pm2 start ecosystem.config.js` to start the pm2 process. + +You can see the full documentation of available configuration in the [PM2 ecosystem file documentation](https://pm2.keymetrics.io/docs/usage/application-declaration/).