Files
boc/ecosystem.config.cjs
T
Bernt bae705aa97 ARCHITECTURE: NFC roadmap, edge AI, audit logging
- Add NFC ePassport roadmap (ICAO 9303, eIDAS)
- Add TensorFlow.js edge face detection (BlazeFace)
- Add structured audit logger (GDPR-compliant)
- Risk scoring support

Part of KYC Apple Native UX v1.1.0
2026-06-29 16:24:48 +00:00

75 lines
4.8 KiB
JavaScript

/**
* AAMOS PM2 Ecosystem Config
* Unified service registry — alla tjänster under AAMOS-paraplyet
* Uppdaterad: 2026-06-01 (namnkonsolidering: prexo-* → aamos-finance-*)
*
* Env-strategi: läser /opt/amos/.env.amos-core vid laddning så att
* DATABASE_URL och övriga secrets alltid finns — oavsett hur PM2 startades.
*/
const fs = require('fs');
function parseEnvFile(path) {
try {
return fs.readFileSync(path, 'utf8')
.split('\n')
.reduce((acc, line) => {
const m = line.match(/^([A-Z_][A-Z0-9_]*)=(.*)$/);
if (m) acc[m[1]] = m[2].trim();
return acc;
}, {});
} catch { return {}; }
}
const baseEnv = parseEnvFile('/opt/amos/.env.amos-core');
const DB = baseEnv.DATABASE_URL || process.env.DATABASE_URL || '';
module.exports = {
apps: [
// ── Core Platform ────────────────────────────────────────────────────────
{ name: 'aamos-dynasty', script: '/opt/amos/services/dynasty-service/index.mjs', env: { PORT: 3001, DATABASE_URL: DB } },
{ name: 'aamos-ops', script: '/opt/amos/services/operations-service/index.mjs', env: { PORT: 3003 } },
{ name: 'aamos-cto', script: '/opt/amos/services/cto-service/index.mjs', env: { PORT: 3004 } },
{ name: 'aamos-analytics', script: '/opt/amos/services/analytics-service/index.mjs', env: { PORT: 3006 } },
{ name: 'aamos-commerce', script: '/opt/amos/services/commerce-service/index.mjs', env: { PORT: 3007 } },
{ name: 'aamos-integrations', script: '/opt/amos/services/ouroboros-integrations/index.mjs', env: { PORT: 3241, DATABASE_URL: DB } },
// ── AAMOS Finance — Ekonomimoduler ───────────────────────────────────────
{ name: 'aamos-finance-core', script: '/opt/amos/services/finance-service/index.mjs', env: { PORT: 3002, DATABASE_URL: DB } },
{ name: 'aamos-finance-payroll', script: '/opt/amos/services/ouroboros-payroll/start.mjs', env: { PORT: 3231, DATABASE_URL: DB } },
{ name: 'aamos-finance-vat', script: '/opt/amos/services/ouroboros-vat/start.mjs', env: { PORT: 3230, DATABASE_URL: DB } },
{ name: 'aamos-finance-expenses', script: '/opt/amos/services/ouroboros-expenses/start.mjs', env: { PORT: 3226, DATABASE_URL: DB } },
{ name: 'aamos-finance-inventory',script: '/opt/amos/services/ouroboros-inventory/start.mjs', env: { PORT: 3228, DATABASE_URL: DB } },
// ── AAMOS HR ─────────────────────────────────────────────────────────────
{ name: 'aamos-hr-people', script: '/opt/amos/services/people-service/index.mjs', env: { PORT: 3005 } },
{ name: 'aamos-hr-recruiting', script: '/opt/amos/services/ouroboros-recruiting/start.mjs', env: { PORT: 3229, DATABASE_URL: DB } },
// ── AAMOS Ops ────────────────────────────────────────────────────────────
{ name: 'aamos-ops-field', script: '/opt/amos/services/ouroboros-field-service/start.mjs', env: { PORT: 3232, DATABASE_URL: DB } },
// ── SEO/AEO ──────────────────────────────────────────────────────────────
{ name: 'aamos-seo', script: '/opt/amos/services/seo-aeo/index.mjs', env: { PORT: 3330, SEO_DB_PATH: '/opt/amos/data/seo-aeo.db' } },
// ── QuixZoom ─────────────────────────────────────────────────────────────
{ name: 'aamos-qx-enterprise', script: '/opt/amos/services/quixzoom-enterprise/index.mjs', env: { PORT: 7020 } },
{ name: 'aamos-qx-regulatory', script: '/opt/amos/services/quixzoom-regulatory/index.mjs', env: { PORT: 7050 } },
// ── AAMOS Ledger Engine (Etapp 1 — Vertikal stängning) ───────────────────
{
name: 'aamos-ledger',
script: '/opt/amos/services/aamos-ledger/index.mjs',
env: {
PORT: 3250,
AAMOS_LEDGER_PORT: 3250,
DATABASE_URL: DB,
REDIS_URL: 'redis://127.0.0.1:6379',
HERMES_CHANNEL: 'aamos:hermes',
HERMES_LOG_DIR: '/opt/amos/data/hermes',
SERVICE_NAME: 'aamos-ledger',
NODE_ENV: 'production',
}
},
]
};