fix: correct require paths for dist/src output + systemd user
Some checks failed
Deploy API Server / build-and-deploy (push) Has been cancelled

- worker.main.ts: require('../../package.json') for dist/src/ location
- worker-heartbeat.service.ts: require('../../../package.json') + try/catch
- systemd units: User=ubuntu (www-data not present on production)
- EnvironmentFile: /opt/zhixi/env/.env.production

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
wangdl 2026-06-19 21:26:05 +08:00
parent cdc228ccf0
commit bd60c2786f
4 changed files with 6 additions and 6 deletions

View File

@ -5,8 +5,8 @@ Wants=mysql.service redis.service
[Service] [Service]
Type=simple Type=simple
User=www-data User=ubuntu
Group=www-data Group=ubuntu
WorkingDirectory=/opt/zhixi/api-server WorkingDirectory=/opt/zhixi/api-server
ExecStart=/usr/bin/node dist/src/main.js ExecStart=/usr/bin/node dist/src/main.js
Restart=always Restart=always

View File

@ -7,8 +7,8 @@ After=zhixi-nest-api.service
[Service] [Service]
Type=simple Type=simple
User=www-data User=ubuntu
Group=www-data Group=ubuntu
WorkingDirectory=/opt/zhixi/backend WorkingDirectory=/opt/zhixi/backend
ExecStart=/usr/bin/node dist/src/worker.main.js ExecStart=/usr/bin/node dist/src/worker.main.js
Restart=always Restart=always

View File

@ -57,7 +57,7 @@ async function bootstrap() {
const logger = new Logger('WorkerBootstrap'); const logger = new Logger('WorkerBootstrap');
// eslint-disable-next-line @typescript-eslint/no-var-requires // eslint-disable-next-line @typescript-eslint/no-var-requires
const pkg = require('../package.json'); const pkg = (() => { try { return require('../../package.json'); } catch { return { version: '0.0.0' }; } })();
const instanceId = generateInstanceId(); const instanceId = generateInstanceId();
process.env.WORKER_INSTANCE_ID = instanceId; process.env.WORKER_INSTANCE_ID = instanceId;
logger.log(`Worker version ${pkg.version} — instance ${instanceId}`); logger.log(`Worker version ${pkg.version} — instance ${instanceId}`);

View File

@ -120,7 +120,7 @@ export class WorkerHeartbeatService implements OnModuleInit, OnModuleDestroy {
const data: WorkerHeartbeatData = { const data: WorkerHeartbeatData = {
instanceId, instanceId,
// eslint-disable-next-line @typescript-eslint/no-var-requires // eslint-disable-next-line @typescript-eslint/no-var-requires
appVersion: require('../../package.json').version, appVersion: (() => { try { return require('../../../package.json').version; } catch { return '0.0.0'; } })(),
startedAt: this.startedAt.toISOString(), startedAt: this.startedAt.toISOString(),
queues: Object.keys(QUEUE_DEFINITIONS), queues: Object.keys(QUEUE_DEFINITIONS),
concurrency: Object.values(QUEUE_DEFINITIONS)[0]?.workerOptions.concurrency ?? 1, concurrency: Object.values(QUEUE_DEFINITIONS)[0]?.workerOptions.concurrency ?? 1,