transceiver-db/ecosystem.config.js
Rene Fichtmueller f48a809e40 feat: Phase 7 — Blog generator + scraper scheduler activation
Blog draft engine generates structured markdown from all Qdrant
collections (products, news, FAQ, troubleshooting). Supports 4
topic types: hype_cycle, comparison, new_product, tutorial.

- routes/blog.ts: POST /api/blog/generate, GET/PUT endpoints
- ecosystem.config.js: Added tip-scraper PM2 process
- Scraper scheduler (pg-boss) now running on Erik with 8 job queues
- News scraper running every 6 hours on Erik
2026-03-28 00:32:08 +13:00

48 lines
1.2 KiB
JavaScript

module.exports = {
apps: [
{
name: "tip-api",
script: "./node_modules/.bin/tsx",
args: "packages/api/src/index.ts",
cwd: "/opt/tip",
interpreter: "none",
exec_mode: "fork",
env: {
NODE_ENV: "production",
API_PORT: "3201",
POSTGRES_HOST: "localhost",
POSTGRES_PORT: "5433",
POSTGRES_DB: "transceiver_db",
POSTGRES_USER: "tip",
POSTGRES_PASSWORD: "tip_prod_2026",
OLLAMA_URL: "http://localhost:11434",
QDRANT_URL: "http://localhost:6333",
DOCLING_URL: "http://localhost:8100",
},
max_memory_restart: "500M",
instances: 1,
autorestart: true,
},
{
name: "tip-scraper",
script: "./node_modules/.bin/tsx",
args: "packages/scraper/src/index.ts",
cwd: "/opt/tip",
interpreter: "none",
exec_mode: "fork",
env: {
NODE_ENV: "production",
POSTGRES_HOST: "localhost",
POSTGRES_PORT: "5433",
POSTGRES_DB: "transceiver_db",
POSTGRES_USER: "tip",
POSTGRES_PASSWORD: "tip_prod_2026",
},
max_memory_restart: "1G",
instances: 1,
autorestart: true,
cron_restart: "0 0 * * *",
},
],
};