← back to Designer Wallcoverings
DW-Agents/dw-agents/ecosystem.config.cjs
478 lines
/**
* PM2 Ecosystem Configuration for DW-Agents
*
* Start all agents: pm2 start ecosystem.config.js
* View status: pm2 list
* View logs: pm2 logs
* Stop all: pm2 stop all
* Restart all: pm2 restart all
*/
module.exports = {
apps: [
{
name: 'dw-master-hub',
script: 'npx',
args: 'tsx master-hub.ts',
cwd: '/root/DW-Agents',
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '500M',
env: {
NODE_ENV: 'production',
PORT: 9893,
NODE_OPTIONS: '--import tsx'
},
error_file: '/root/DW-Agents/logs/hub-error.log',
out_file: '/root/DW-Agents/logs/hub-out.log',
log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
merge_logs: true
},
{
name: 'dw-digital-samples',
script: 'npx',
args: 'tsx digital-samples-agent.ts',
cwd: '/root/DW-Agents',
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '500M',
env: {
NODE_ENV: 'production',
PORT: 9879,
NODE_OPTIONS: '--import tsx',
SLACK_BOT_TOKEN: 'xoxb-3958182050256-9814366234406-HiR1ybK6HT8JViWDEpjXpmsq',
SHOPIFY_STORE_DOMAIN: 'designer-laboratory-sandbox.myshopify.com',
SHOPIFY_ACCESS_TOKEN: (process.env.SHOPIFY_ADMIN_TOKEN || '')
},
error_file: '/root/DW-Agents/logs/digital-samples-error.log',
out_file: '/root/DW-Agents/logs/digital-samples-out.log',
log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
merge_logs: true
},
{
name: 'dw-legal-team',
script: 'npx',
args: 'tsx legal-agent.ts',
cwd: '/root/DW-Agents/DWLegalTeam',
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '500M',
min_uptime: '10s',
max_restarts: 50,
restart_delay: 4000,
exp_backoff_restart_delay: 100,
env: {
NODE_ENV: 'production',
PORT: 9878,
NODE_OPTIONS: '--import tsx',
SHOPIFY_STORE_DOMAIN: 'designer-laboratory-sandbox.myshopify.com',
SHOPIFY_ADMIN_ACCESS_TOKEN: (process.env.SHOPIFY_ADMIN_TOKEN || '')
},
error_file: '/root/DW-Agents/logs/legal-error.log',
out_file: '/root/DW-Agents/logs/legal-out.log',
log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
merge_logs: true
},
{
name: 'dw-purchasing-office',
script: 'npx',
args: 'tsx purchasing-office-agent.ts',
cwd: '/root/DW-Agents',
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '500M',
env: {
NODE_ENV: 'production',
PORT: 9880,
NODE_OPTIONS: '--import tsx',
ANTHROPIC_API_KEY: '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'
},
error_file: '/root/DW-Agents/logs/purchasing-error.log',
out_file: '/root/DW-Agents/logs/purchasing-out.log',
log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
merge_logs: true
},
{
name: 'dw-marketing',
script: 'npx',
args: 'tsx agent-marketing/marketing-agent.ts',
cwd: '/root/DW-Agents',
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '500M',
env: {
NODE_ENV: 'production',
PORT: 9881,
NODE_OPTIONS: '--import tsx',
SHOPIFY_STORE_DOMAIN: 'designer-laboratory-sandbox.myshopify.com',
SHOPIFY_ACCESS_TOKEN: (process.env.SHOPIFY_ADMIN_TOKEN || ''),
ANTHROPIC_API_KEY: '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'
},
error_file: '/root/DW-Agents/logs/marketing-error.log',
out_file: '/root/DW-Agents/logs/marketing-out.log',
log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
merge_logs: true
},
{
name: 'dw-accounting',
script: 'npx',
args: 'tsx accounting-agent.ts',
cwd: '/root/DW-Agents',
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '500M',
env: {
NODE_ENV: 'production',
PORT: 9882,
NODE_OPTIONS: '--import tsx'
},
error_file: '/root/DW-Agents/logs/accounting-error.log',
out_file: '/root/DW-Agents/logs/accounting-out.log',
log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
merge_logs: true
},
{
name: 'dw-trend-research',
script: 'npx',
args: 'tsx trend-research-agent.ts',
cwd: '/root/DW-Agents',
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '500M',
env: {
NODE_ENV: 'production',
PORT: 9883,
NODE_OPTIONS: '--import tsx',
ANTHROPIC_API_KEY: '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'
},
error_file: '/root/DW-Agents/logs/trend-research-error.log',
out_file: '/root/DW-Agents/logs/trend-research-out.log',
log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
merge_logs: true
},
{
name: 'dw-zendesk-chat',
script: 'npx',
args: 'tsx zendesk-chat-agent.ts',
cwd: '/root/DW-Agents',
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '500M',
env: {
NODE_ENV: 'production',
PORT: 9884,
NODE_OPTIONS: '--import tsx',
ZENDESK_DOMAIN: 'designerwallcoverings.zendesk.com',
ZENDESK_EMAIL: 'info@designerwallcoverings.com',
ZENDESK_PASSWORD: '*Zopimaccess911*'
},
error_file: '/root/DW-Agents/logs/zendesk-error.log',
out_file: '/root/DW-Agents/logs/zendesk-out.log',
log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
merge_logs: true
},
{
name: 'dw-shopify-store',
script: 'npx',
args: 'tsx agent-shopify-store/shopify-store-agent.ts',
cwd: '/root/DW-Agents',
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '500M',
env: {
NODE_ENV: 'production',
PORT: 7238,
NODE_OPTIONS: '--import tsx',
SHOPIFY_STORE_DOMAIN: 'designer-laboratory-sandbox.myshopify.com',
SHOPIFY_ACCESS_TOKEN: (process.env.SHOPIFY_ADMIN_TOKEN || ''),
SHOPIFY_PRODUCTS_TOKEN: (process.env.SHOPIFY_ADMIN_TOKEN || '')
},
error_file: '/root/DW-Agents/logs/shopify-store-error.log',
out_file: '/root/DW-Agents/logs/shopify-store-out.log',
log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
merge_logs: true,
min_uptime: '10s',
max_restarts: 10
},
{
name: 'dw-log-monitor',
script: 'npx',
args: 'tsx agent-log-monitor/log-monitor-agent.ts',
cwd: '/root/DW-Agents',
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '500M',
env: {
NODE_ENV: 'production',
PORT: 7239,
NODE_OPTIONS: '--import tsx'
},
error_file: '/root/DW-Agents/logs/log-monitor-error.log',
out_file: '/root/DW-Agents/logs/log-monitor-out.log',
log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
merge_logs: true,
min_uptime: '10s',
max_restarts: 10
},
{
name: 'dw-ui-manager',
script: 'npx',
args: 'tsx agent-ui-manager/ui-manager-agent.ts',
cwd: '/root/DW-Agents',
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '500M',
env: {
NODE_ENV: 'production',
PORT: 7240,
NODE_OPTIONS: '--import tsx'
},
error_file: '/root/DW-Agents/logs/ui-manager-error.log',
out_file: '/root/DW-Agents/logs/ui-manager-out.log',
log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
merge_logs: true,
min_uptime: '10s',
max_restarts: 10
},
{
name: 'dw-crash-loop-resolver',
script: 'npx',
args: 'tsx agent-crash-loop-resolver/crash-loop-resolver.ts',
cwd: '/root/DW-Agents',
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '500M',
env: {
NODE_ENV: 'production',
PORT: 9895,
NODE_OPTIONS: '--import tsx'
},
error_file: '/root/DW-Agents/logs/crash-loop-resolver-error.log',
out_file: '/root/DW-Agents/logs/crash-loop-resolver-out.log',
log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
merge_logs: true
},
{
name: 'dw-bigquery-gov',
script: 'npx',
args: 'tsx agent-bigquery-gov/bigquery-gov-agent.ts',
cwd: '/root/DW-Agents',
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '500M',
env: {
NODE_ENV: 'production',
PORT: 7677,
NODE_OPTIONS: '--import tsx',
GOOGLE_CLOUD_PROJECT: 'bigquery-public-data'
},
error_file: '/root/DW-Agents/logs/bigquery-gov-error.log',
out_file: '/root/DW-Agents/logs/bigquery-gov-out.log',
log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
merge_logs: true
},
{
name: 'dw-needs-attention',
script: 'npx',
args: 'tsx agent-needs-attention/needs-attention-agent.ts',
cwd: '/root/DW-Agents',
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '500M',
env: {
NODE_ENV: 'production',
PORT: 9886,
NODE_OPTIONS: '--import tsx'
},
error_file: '/root/DW-Agents/logs/needs-attention-error.log',
out_file: '/root/DW-Agents/logs/needs-attention-out.log',
log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
merge_logs: true
},
{
name: 'dw-executive-ceo',
script: 'npx',
args: 'tsx agent-executive-ceo/ceo-dashboard-agent.ts',
cwd: '/root/Projects/Designer-Wallcoverings/DW-Agents/dw-agents',
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '500M',
env: {
NODE_ENV: 'production',
PORT: 7120,
NODE_OPTIONS: '--import tsx'
},
error_file: '/root/DW-Agents/logs/executive-ceo-error.log',
out_file: '/root/DW-Agents/logs/executive-ceo-out.log',
log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
merge_logs: true
},
{
name: 'dw-executive-cfo',
script: 'npx',
args: 'tsx agent-executive-cfo/cfo-dashboard-agent.ts',
cwd: '/root/Projects/Designer-Wallcoverings/DW-Agents/dw-agents',
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '500M',
env: {
NODE_ENV: 'production',
PORT: 7121,
NODE_OPTIONS: '--import tsx'
},
error_file: '/root/DW-Agents/logs/executive-cfo-error.log',
out_file: '/root/DW-Agents/logs/executive-cfo-out.log',
log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
merge_logs: true
},
{
name: 'dw-executive-coo',
script: 'npx',
args: 'tsx agent-executive-coo/coo-dashboard-agent.ts',
cwd: '/root/Projects/Designer-Wallcoverings/DW-Agents/dw-agents',
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '500M',
env: {
NODE_ENV: 'production',
PORT: 7122,
NODE_OPTIONS: '--import tsx'
},
error_file: '/root/DW-Agents/logs/executive-coo-error.log',
out_file: '/root/DW-Agents/logs/executive-coo-out.log',
log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
merge_logs: true
},
{
name: 'dw-executive-vp-ops',
script: 'npx',
args: 'tsx agent-executive-vp-ops/vp-ops-dashboard-agent.ts',
cwd: '/root/Projects/Designer-Wallcoverings/DW-Agents/dw-agents',
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '500M',
env: {
NODE_ENV: 'production',
PORT: 7125,
NODE_OPTIONS: '--import tsx'
},
error_file: '/root/DW-Agents/logs/executive-vp-ops-error.log',
out_file: '/root/DW-Agents/logs/executive-vp-ops-out.log',
log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
merge_logs: true
},
{
name: 'dw-executive-cto',
script: 'npx',
args: 'tsx agent-executive-cto/cto-dashboard-agent.ts',
cwd: '/root/Projects/Designer-Wallcoverings/DW-Agents/dw-agents',
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '500M',
env: {
NODE_ENV: 'production',
PORT: 7124,
NODE_OPTIONS: '--import tsx'
},
error_file: '/root/DW-Agents/logs/executive-cto-error.log',
out_file: '/root/DW-Agents/logs/executive-cto-out.log',
log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
merge_logs: true
},
{
name: 'dw-dashboard-monitor',
script: 'npx',
args: 'tsx agent-dashboard-monitor/dashboard-monitor.ts',
cwd: '/root/DW-Agents',
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '500M',
env: {
NODE_ENV: 'production',
PORT: 9990,
NODE_OPTIONS: '--import tsx'
},
error_file: '/root/DW-Agents/logs/dashboard-monitor-error.log',
out_file: '/root/DW-Agents/logs/dashboard-monitor-out.log',
log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
merge_logs: true
},
{
name: 'bubbe-lang-service',
script: 'python3',
args: 'main.py',
cwd: '/root/apps/bubbe-lang-service',
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '500M',
env: {
NODE_ENV: 'production',
PORT: 8001
},
error_file: '/root/DW-Agents/logs/bubbe-lang-error.log',
out_file: '/root/DW-Agents/logs/bubbe-lang-out.log',
log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
merge_logs: true
},
{
name: 'project-portfolio-viewer',
script: 'npx',
args: 'tsx portfolio-viewer.ts',
cwd: '/root/Projects/project-portfolio-viewer',
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '500M',
env: {
NODE_ENV: 'production',
PORT: 7899,
NODE_OPTIONS: '--import tsx'
},
error_file: '/root/DW-Agents/logs/portfolio-viewer-error.log',
out_file: '/root/DW-Agents/logs/portfolio-viewer-out.log',
log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
merge_logs: true
},
{
name: 'dw-skills-manager',
script: 'npx',
args: 'tsx agent-skills-manager/skills-manager-agent.ts',
cwd: '/root/Projects/Designer-Wallcoverings/DW-Agents/dw-agents',
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '500M',
env: {
NODE_ENV: 'production',
PORT: 9894,
NODE_OPTIONS: '--import tsx'
},
error_file: '/root/DW-Agents/logs/skills-manager-error.log',
out_file: '/root/DW-Agents/logs/skills-manager-out.log',
log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
merge_logs: true
}
]
};