Forked from Forthena (PERSONAL/forthena) and retargeted: - NO login, NO LLM: the edition is public and the ranking is deterministic (stories that name Sen. BAM lead; freshest first) — Daniel: no like/dislike or store profile for visitors. - Crawler scoped to BAM: Bing news keyword queries + Inquirer/Rappler fallback wires, with a two-tier relevance gate (named-BAM always; Aquino+legislative-context only from fallback) so op-eds and non-Bam senators are dropped. - Desks: BAM (lead), Gaming, Education, Politics, Energy, PH, Business. - Community board /board: 'Thank you Senator BAM' — nickname-only posts, HTML-stripped, URL-only rejected, IP rate-limited (3/10min, 20/day). - Yellow-gamer theme (Orbitron/Rajdhani/JetBrains Mono, dark + gold, HUD corners), supporter disclaimer in header and footer. - Tests: category/date/relevance/text suites + Mongo board suite + full HTTP e2e (all passing). Infra: 66.181.46.132 (bidaangmamamayan.com), local Mongo 7.0, nginx + certbot TLS, PM2 bama (:3000) + 15-min crawl cron.
25 lines
659 B
JavaScript
25 lines
659 B
JavaScript
module.exports = {
|
|
apps: [
|
|
{
|
|
name: "bama",
|
|
script: "node_modules/next/dist/bin/next",
|
|
args: "start -p 3000",
|
|
cwd: "/var/www/bama",
|
|
instances: 1,
|
|
autorestart: true,
|
|
max_memory_restart: "1G",
|
|
env: { NODE_ENV: "production" },
|
|
},
|
|
{
|
|
name: "bama-crawl",
|
|
script: "scripts/cron-crawl.cjs",
|
|
// Every 15 min: crawl the BAM queries + (quiet days) the associated wires,
|
|
// warm the reader cache. No LLM anywhere in this stack.
|
|
cron_restart: "*/15 * * * *",
|
|
autorestart: false,
|
|
cwd: "/var/www/bama",
|
|
env: { NODE_ENV: "production", PORT: "3000" },
|
|
},
|
|
],
|
|
};
|