Files
CShare/backend/ecosystem.config.cjs
T
arsam cf5f3b6e0f Import project configuration: backend/ecosystem.config.cjs
Import the existing local project snapshot. This commit organizes existing files; it does not represent newly developed functionality.
2026-09-18 23:12:15 +03:30

56 lines
2.2 KiB
JavaScript

const fs = require('fs');
const path = require('path');
/**
* Helper function to read variables from .env file synchronously if it exists.
* This prevents hardcoding credentials in this config file which gets tracked by git.
*/
function readEnv() {
const envPath = path.join(__dirname, '.env');
if (!fs.existsSync(envPath)) return {};
const lines = fs.readFileSync(envPath, 'utf8').split('\n');
const env = {};
for (const line of lines) {
const trimmed = line.trim();
if (!trimmed || trimmed.startsWith('#')) continue;
const idx = trimmed.indexOf('=');
if (idx === -1) continue;
const key = trimmed.substring(0, idx).trim();
let val = trimmed.substring(idx + 1).trim();
if ((val.startsWith('"') && val.endsWith('"')) || (val.startsWith("'") && val.endsWith("'"))) {
val = val.slice(1, -1);
}
env[key] = val;
}
return env;
}
const localEnv = readEnv();
module.exports = {
apps: [{
name: 'cshare-api',
script: 'node_modules/.bin/tsx',
args: 'src/server.ts',
cwd: '/srv/CShare/backend',
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '400M',
env: {
NODE_ENV: process.env.NODE_ENV || localEnv.NODE_ENV || 'production',
PORT: process.env.PORT || localEnv.PORT || '4001',
DATA_DIR: process.env.DATA_DIR || localEnv.DATA_DIR || '/srv/CShare/data',
PUBLIC_APP_URL: process.env.PUBLIC_APP_URL || localEnv.PUBLIC_APP_URL || 'https://file.asabbagh.com',
FRONTEND_URL: process.env.FRONTEND_URL || localEnv.FRONTEND_URL || 'https://file.asabbagh.com',
JWT_ACCESS_SECRET: process.env.JWT_ACCESS_SECRET || localEnv.JWT_ACCESS_SECRET,
JWT_REFRESH_SECRET: process.env.JWT_REFRESH_SECRET || localEnv.JWT_REFRESH_SECRET,
ADMIN_API_KEY: process.env.ADMIN_API_KEY || localEnv.ADMIN_API_KEY,
GDRIVE_CLIENT_ID: process.env.GDRIVE_CLIENT_ID || localEnv.GDRIVE_CLIENT_ID,
GDRIVE_CLIENT_SECRET: process.env.GDRIVE_CLIENT_SECRET || localEnv.GDRIVE_CLIENT_SECRET,
GDRIVE_REFRESH_TOKEN: process.env.GDRIVE_REFRESH_TOKEN || localEnv.GDRIVE_REFRESH_TOKEN,
GDRIVE_FOLDER_ID: process.env.GDRIVE_FOLDER_ID || localEnv.GDRIVE_FOLDER_ID,
},
}],
};