54 lines
1.6 KiB
JavaScript
54 lines
1.6 KiB
JavaScript
const path = require("path");
|
|
const dotenv = require("dotenv");
|
|
|
|
const instances = Number.parseInt(process.env.WEB_CONCURRENCY ?? "1", 10) || 1;
|
|
const { parsed: envFromFile = {} } = dotenv.config({
|
|
path: path.join(__dirname, ".env"),
|
|
});
|
|
|
|
module.exports = {
|
|
apps: [
|
|
{
|
|
name: "DouyinArchive-ASR",
|
|
script: "node_modules/tsx/dist/cli.mjs",
|
|
args: "scripts/stt-worker.ts",
|
|
cwd: __dirname,
|
|
instances: 1,
|
|
exec_mode: "fork",
|
|
autorestart: true,
|
|
restart_delay: 4000,
|
|
kill_timeout: 10000,
|
|
watch: false,
|
|
env: { ...envFromFile, NODE_ENV: "production" },
|
|
time: true,
|
|
},
|
|
{
|
|
name: "DouyinArchive",
|
|
script: "npm",
|
|
args: "run start",
|
|
cwd: __dirname,
|
|
autorestart: true,
|
|
restart_delay: 4000,
|
|
kill_timeout: 5000,
|
|
instances,
|
|
exec_mode: instances > 1 ? "cluster" : "fork",
|
|
// 注意:不要在生产环境 watch,否则 Next.js 写入 .next 会触发重启风暴,导致 Playwright 进程被提前关闭
|
|
watch: false,
|
|
ignore_watch: [".next", ".turbo", "generated", "node_modules", ".git"],
|
|
env: {
|
|
// 明确开发环境可选项(如需)
|
|
NODE_ENV: process.env.NODE_ENV || "development",
|
|
...envFromFile,
|
|
},
|
|
env_production: {
|
|
// 关键:确保应用进程中的 NODE_ENV=production,从而禁用 Next.js 的开发特性
|
|
NODE_ENV: "production",
|
|
// 为避免多个实例同时拉起共享浏览器,默认单实例;如需并发,请改为独立浏览器服务
|
|
WEB_CONCURRENCY: "1",
|
|
...envFromFile,
|
|
},
|
|
time: true,
|
|
},
|
|
],
|
|
};
|