From 2ac0e9a0bfafe1a0b8dc369e8b8069ebf2055ff3 Mon Sep 17 00:00:00 2001 From: Wenyan Date: Wed, 5 Nov 2025 20:59:57 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0PM2=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E4=B8=AD=E7=BC=BA=E5=A4=B1=E7=9A=84JWT=5FSECRET=E7=8E=AF?= =?UTF-8?q?=E5=A2=83=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题: - PM2启动时报错:JWT_SECRET environment variable is not set - 所有客户端实例(梅州、云浮、揭阳、潮州、省局)都缺少JWT_SECRET配置 - 导致服务无法正常启动 修复: 为每个客户端实例添加独立的JWT_SECRET环境变量: - 梅州(51703): docreview-jwt-secret-key-production-meizhou-2024 - 云浮(51704): docreview-jwt-secret-key-production-yunfu-2024 - 揭阳(51705): docreview-jwt-secret-key-production-jieyang-2024 - 潮州(51706): docreview-jwt-secret-key-production-chaozhou-2024 - 省局(51707): docreview-jwt-secret-key-production-province-2024 注意: - 每个客户端使用不同的JWT_SECRET增强安全性 - JWT_SECRET用于生成和验证前端JWT token - 必需配置,否则服务无法启动 现在PM2可以正常启动所有客户端实例 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- ecosystem.config.cjs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/ecosystem.config.cjs b/ecosystem.config.cjs index a998d03..5643b3e 100644 --- a/ecosystem.config.cjs +++ b/ecosystem.config.cjs @@ -29,6 +29,8 @@ module.exports = { NEXT_PUBLIC_PORT: '51703', NEXT_PUBLIC_CLIENT_ID: 'meizhou', NEXT_PUBLIC_API_PORT_CONFIG: '51703', + // JWT认证配置 + JWT_SECRET: 'docreview-jwt-secret-key-production-meizhou-2024', OAUTH_CLIENT_SECRET: 'VYk1AC5XIJEfnEXwyq0u9JEY3fi3byCfSD58zANGeb' }, error_file: './logs/meizhou-err.log', @@ -62,6 +64,8 @@ module.exports = { NEXT_PUBLIC_PORT: '51704', NEXT_PUBLIC_CLIENT_ID: 'yunfu', NEXT_PUBLIC_API_PORT_CONFIG: '51704', + // JWT认证配置 + JWT_SECRET: 'docreview-jwt-secret-key-production-yunfu-2024', OAUTH_CLIENT_SECRET: 'VYk1AC5XIJEfnEXwyq0u9JEY3fi3byCfSD58zANGeb' }, error_file: './logs/yunfu-err.log', @@ -94,6 +98,8 @@ module.exports = { NEXT_PUBLIC_PORT: '51705', NEXT_PUBLIC_CLIENT_ID: 'jieyang', NEXT_PUBLIC_API_PORT_CONFIG: '51705', + // JWT认证配置 + JWT_SECRET: 'docreview-jwt-secret-key-production-jieyang-2024', OAUTH_CLIENT_SECRET: 'VYk1AC5XIJEfnEXwyq0u9JEY3fi3byCfSD58zANGeb' }, error_file: './logs/jieyang-err.log', @@ -126,6 +132,8 @@ module.exports = { NEXT_PUBLIC_PORT: '51706', NEXT_PUBLIC_CLIENT_ID: 'chaozhou', NEXT_PUBLIC_API_PORT_CONFIG: '51706', + // JWT认证配置 + JWT_SECRET: 'docreview-jwt-secret-key-production-chaozhou-2024', OAUTH_CLIENT_SECRET: 'VYk1AC5XIJEfnEXwyq0u9JEY3fi3byCfSD58zANGeb' }, error_file: './logs/chaozhou-err.log', @@ -158,6 +166,8 @@ module.exports = { NEXT_PUBLIC_PORT: '51707', NEXT_PUBLIC_CLIENT_ID: 'province', NEXT_PUBLIC_API_PORT_CONFIG: '51707', + // JWT认证配置 + JWT_SECRET: 'docreview-jwt-secret-key-production-province-2024', OAUTH_CLIENT_SECRET: 'VYk1AC5XIJEfnEXwyq0u9JEY3fi3byCfSD58zANGeb' }, error_file: './logs/province-err.log', From e05c8585f0f217aac95d29ce242fe2aec1dd79dc Mon Sep 17 00:00:00 2001 From: Wenyan Date: Wed, 5 Nov 2025 21:05:44 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=90=8C=E6=AD=A5env?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 .env diff --git a/.env b/.env new file mode 100644 index 0000000..39f78b3 --- /dev/null +++ b/.env @@ -0,0 +1,10 @@ +# APP ID +NEXT_PUBLIC_APP_ID=http://nas.7bm.co:12980/app/46539478-3281-4e98-a445-6da9dc078e95/configuration +# APP API key +NEXT_PUBLIC_APP_KEY=app-N3su9tKyMMnqxt2EMgOkVof7 +# API url prefix +NEXT_PUBLIC_API_URL=http://localhost:8000/dify + +# JWT Secret - 用于签名和验证前端JWT token +# 生产环境请务必修改为强随机字符串(至少32个字符) +JWT_SECRET=gdyc-super-secrets-jjwtt-key-change-this-in-production-20250721-from-login-callback \ No newline at end of file