UNPKG

4.37 kBJavaScriptView Raw
1/**
2 * Copyright 2013 the PM2 project authors. All rights reserved.
3 * Use of this source code is governed by a license that
4 * can be found in the LICENSE file.
5 */
6
7var debug = require('debug')('pm2:conf');
8var p = require('path');
9var util = require('util');
10var chalk = require('chalk');
11
12/**
13 * Get PM2 path structure
14 */
15var path_structure = require('./paths.js')(process.env.OVER_HOME);
16
17/**
18 * Constants variables used by PM2
19 */
20var csts = {
21 PREFIX_MSG : chalk.green('[PM2] '),
22 PREFIX_MSG_ERR : chalk.red('[PM2][ERROR] '),
23 PREFIX_MSG_MOD : chalk.bold.green('[PM2][Module] '),
24 PREFIX_MSG_MOD_ERR : chalk.red('[PM2][Module][ERROR] '),
25 PREFIX_MSG_WARNING : chalk.yellow('[PM2][WARN] '),
26 PREFIX_MSG_SUCCESS : chalk.cyan('[PM2] '),
27
28 TEMPLATE_FOLDER : p.join(__dirname, 'lib/templates'),
29
30 APP_CONF_DEFAULT_FILE : 'ecosystem.config.js',
31 APP_CONF_TPL : 'ecosystem.tpl',
32 APP_CONF_TPL_SIMPLE : 'ecosystem-simple.tpl',
33 SAMPLE_CONF_FILE : 'sample-conf.js',
34 LOGROTATE_SCRIPT : 'logrotate.d/pm2',
35
36 DOCKERFILE_NODEJS : 'Dockerfiles/Dockerfile-nodejs.tpl',
37 DOCKERFILE_JAVA : 'Dockerfiles/Dockerfile-java.tpl',
38 DOCKERFILE_RUBY : 'Dockerfiles/Dockerfile-ruby.tpl',
39
40 SUCCESS_EXIT : 0,
41 ERROR_EXIT : 1,
42 CODE_UNCAUGHTEXCEPTION : 1,
43
44 IS_WINDOWS : (process.platform === 'win32' || process.platform === 'win64'),
45 ONLINE_STATUS : 'online',
46 STOPPED_STATUS : 'stopped',
47 STOPPING_STATUS : 'stopping',
48 LAUNCHING_STATUS : 'launching',
49 ERRORED_STATUS : 'errored',
50 ONE_LAUNCH_STATUS : 'one-launch-status',
51
52 CLUSTER_MODE_ID : 'cluster_mode',
53 FORK_MODE_ID : 'fork_mode',
54
55 LOW_MEMORY_ENVIRONMENT : process.env.PM2_OPTIMIZE_MEMORY || false,
56
57 MACHINE_NAME : process.env.INSTANCE_NAME || process.env.MACHINE_NAME,
58 SECRET_KEY : process.env.KEYMETRICS_SECRET || process.env.PM2_SECRET_KEY || process.env.SECRET_KEY,
59 PUBLIC_KEY : process.env.KEYMETRICS_PUBLIC || process.env.PM2_PUBLIC_KEY || process.env.PUBLIC_KEY,
60 KEYMETRICS_ROOT_URL : process.env.KEYMETRICS_NODE || process.env.ROOT_URL || process.env.INFO_NODE || 'root.keymetrics.io',
61
62
63 KEYMETRICS_BANNER : '../lib/motd',
64 KEYMETRICS_UPDATE : '../lib/motd.update',
65 DEFAULT_MODULE_JSON : 'package.json',
66
67 REMOTE_PORT_TCP : isNaN(parseInt(process.env.KEYMETRICS_PUSH_PORT)) ? 80 : parseInt(process.env.KEYMETRICS_PUSH_PORT),
68 REMOTE_PORT : 41624,
69 REMOTE_HOST : 's1.keymetrics.io',
70 SEND_INTERVAL : 1000,
71 RELOAD_LOCK_TIMEOUT : parseInt(process.env.PM2_RELOAD_LOCK_TIMEOUT) || 30000,
72 GRACEFUL_TIMEOUT : parseInt(process.env.PM2_GRACEFUL_TIMEOUT) || 8000,
73 GRACEFUL_LISTEN_TIMEOUT : parseInt(process.env.PM2_GRACEFUL_LISTEN_TIMEOUT) || 3000,
74 LOGS_BUFFER_SIZE : 8,
75 CONTEXT_ON_ERROR : 2,
76 AGGREGATION_DURATION : process.env.PM2_DEBUG || process.env.NODE_ENV === 'local_test' || process.env.NODE_ENV === 'development' ? 3000 : 5 * 60000,
77 TRACE_FLUSH_INTERVAL : process.env.PM2_DEBUG || process.env.NODE_ENV === 'local_test' ? 1000 : 60000,
78
79 // Concurrent actions when doing start/restart/reload
80 CONCURRENT_ACTIONS : (function() {
81 var concurrent_actions = parseInt(process.env.PM2_CONCURRENT_ACTIONS) || 2;
82 debug('Using %d parallelism (CONCURRENT_ACTIONS)', concurrent_actions);
83 return concurrent_actions;
84 })(),
85
86 DEBUG : process.env.PM2_DEBUG || false,
87 WEB_IPADDR : process.env.PM2_API_IPADDR || '0.0.0.0',
88 WEB_PORT : parseInt(process.env.PM2_API_PORT) || 9615,
89 WEB_STRIP_ENV_VARS : process.env.PM2_WEB_STRIP_ENV_VARS || false,
90 MODIFY_REQUIRE : process.env.PM2_MODIFY_REQUIRE || false,
91
92 WORKER_INTERVAL : process.env.PM2_WORKER_INTERVAL || 30000,
93 KILL_TIMEOUT : process.env.PM2_KILL_TIMEOUT || 1600,
94 PM2_PROGRAMMATIC : typeof(process.env.pm_id) !== 'undefined' || process.env.PM2_PROGRAMMATIC,
95 PM2_LOG_DATE_FORMAT : process.env.PM2_LOG_DATE_FORMAT !== undefined ? process.env.PM2_LOG_DATE_FORMAT : 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'
96
97};
98
99module.exports = util._extend(csts, path_structure);