Peptide News Aggregator — Hybrid Shared Hosting + Coolify VPS Architecture
This directory contains the v2.6.0 Standalone VPS Worker, designed for high-signal peptide news pipelines where WordPress is hosted on a shared server (e.g., prepaid shared hosting) and heavy AI/scraping processes are offloaded to a dedicated Linux VPS running Coolify (e.g., Hostinger KVM8).
Why Use a Hybrid Architecture?
1. Shared Hosting Server (WordPress + Database)
- Strengths: Serves public visitors, runs WordPress admin UI, stores
wp_peptide_news_articles, and handles lightweight web WP-Cron tasks. - Limitations:
- PHP execution timeouts (60-second CGI limit).
- Shared IP addresses may be rate-limited or blocked by Google News or NCBI/PubMed.
2. Dedicated VPS Worker (Coolify Container / Scheduled Task)
- Strengths:
- Uncapped execution time for OpenRouter/Gemini 3-Step AI Pipeline calls.
- Dedicated VPS IP address for reliable PubMed E-utilities XML fetching and Google News redirect URL resolution.
- Zero load on your shared WordPress server's CPU or memory during AI article generation.
- Effortless management using Coolify UI or Coolify MCP.
How It Works
[Shared Hosting: WordPress Server]
├── Hosts wp_peptide_news_articles & Web Admin Dashboard
└── REST API (/wp-json/peptide-news/v1/worker/*)
▲ ▲
│ 1. GET /pending │ 3. POST /update (ai_summary, rigor_score)
▼ │
[Coolify Instance on VPS: peptide-news-worker]
├── Runs via Coolify Scheduled Task / Docker Container
└── Calls OpenRouter / Gemini API (3-Step Pipeline: Gatekeeper -> Extract -> Markdown Brief)
Deploying on Coolify (Step-by-Step)
Step 1: Set a Secret Token in WordPress
- Log into your shared WordPress site dashboard.
- Go to Settings -> Peptide News.
- Under VPS Worker Integration, enter a secret token (e.g.
vps_secret_token_12345) and save.
Step 2: Deploy to Coolify as a Scheduled Task (Recommended)
- In your Coolify dashboard, click + Add Resource -> Application -> select your Git repository (or use Dockerfile deployment).
- Set the Build Pack to
Dockerfile(pointing totools/vps-worker/Dockerfile). - Under Environment Variables, configure:
WP_URL:https://your-shared-wordpress-site.comVPS_TOKEN:vps_secret_token_12345WORKER_ACTION:process-llmOPENROUTER_KEY:sk-or-v1-...OPENROUTER_MODEL:google/gemini-2.0-flash-001BATCH_SIZE:25
- Under Scheduled Tasks (or Coolify Cron Jobs), create a new schedule:
- Cron Expression:
0 * * * *(runs every hour) - Command:
php /app/worker.php
- Cron Expression:
- Click Deploy. Coolify will build the lightweight Alpine PHP container and execute the job automatically on schedule.
REST API Worker Endpoints
All endpoints require either WordPress admin authentication OR a valid X-Peptide-News-Token: <your-token> header:
GET /wp-json/peptide-news/v1/worker/pending?limit=20
Returns pending articles requiring AI analysis. The worker fetches this with the token also in the query string (&token=...) so the cached response is namespaced by the secret, which survives shared-host LiteSpeed caching that ignoresX-LiteSpeed-Cache-Control: no-cache; the header is still sent alongside.POST /wp-json/peptide-news/v1/worker/update
Updates an article with completed AI summaries, tags, and scientific rigor scores.POST /wp-json/peptide-news/v1/worker/ingest
Bulk-ingests new articles scraped directly on the VPS into the WordPress database.