| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- // PM2 process config
- // Start: pm2 start ecosystem.config.cjs
- // Save: pm2 save
- // Startup: pm2 startup systemd
- const fs = require("fs");
- const path = require("path");
- // Parse .env.production manually so PM2 always picks up the latest values
- // regardless of PM2 version's env_file support.
- function loadEnv(envPath) {
- try {
- const content = fs.readFileSync(envPath, "utf8");
- const env = {};
- for (const line of content.split("\n")) {
- const trimmed = line.trim();
- if (!trimmed || trimmed.startsWith("#")) continue;
- const eqIdx = trimmed.indexOf("=");
- if (eqIdx === -1) continue;
- const key = trimmed.slice(0, eqIdx).trim();
- const val = trimmed.slice(eqIdx + 1).trim();
- env[key] = val;
- }
- return env;
- } catch {
- return {};
- }
- }
- const ENV_FILE = path.resolve(__dirname, ".env.production");
- const env = loadEnv(ENV_FILE);
- module.exports = {
- apps: [
- {
- name: "homelegance-chat",
- script: "./dist/index.js",
- cwd: "/redant/web/homelegance-chatbot",
- env, // inject all vars from .env.production
- instances: 1,
- autorestart: true,
- max_memory_restart: "512M",
- error_file: "/var/log/pm2/homelegance-chat-error.log",
- out_file: "/var/log/pm2/homelegance-chat-out.log",
- log_date_format: "YYYY-MM-DD HH:mm:ss",
- },
- ],
- };
|