ClawFeed Architecture

AI-powered news digest — source ingestion → summarization → delivery

☁️ VPS (ov-258fa3) — Ubuntu 22.04 • Docker 29.5 • 4 vCPU • 4GB RAM SOURCES RSS / Atom TechCrunch, Reuters… Twitter / X Followed users HackerNews Top stories Source Packs Community bundles HTTPS fetch Traefik (Reverse Proxy) docker compose — Ports 80/443 • Let's Encrypt TLS routes: html.corlocas.xyz / → public-html | /clawfeed → clawfeed stripPrefix(/clawfeed) → :8767 🦞 ClawFeed (Node.js 20 — Alpine) Docker container • clawfeed:latest • network: tmp_default • port 8767 better-sqlite3 • SPA frontend (web/) • REST API (src/server.mjs) volume: clawfeed-data → /app/data SQLite SQLite digest.db API GET /api/digests POST /api/digests GET /api/sources GET /api/auth/* GET /feed/:slug Hermes Agent (Digest Cron) Daily @ 7:00 UTC • fetches sources → AI summarizes → POSTs to API On-demand: cronjob(action='run', job_id='4bbf8efb1982') Bearer API_KEY → POST /api/digests 🌐 Users Browser → https://html.corlocas.xyz/clawfeed/ HTTPS request public-html port 8011 • /home/ubuntu/public-html Dokploy MCP port 3001 • API key auth Legend Agent / Cron App Backend Infrastructure Database External / User

Flux de données

  • • Sources (RSS/Twitter/HN) → fetch HTTPS
  • • Traefik route /clawfeed → stripPrefix → ClawFeed:8767
  • • ClawFeed API stocke dans SQLite (digest.db)
  • • Cron Hermes POSTe les digests quotidiens via API
  • • SPA frontend sert via Node.js (web/index.html)

Composants clés

  • • ClawFeed : Node.js 20, Alpine, port 8767
  • • Traefik : reverse proxy, TLS Let's Encrypt
  • • SQLite : zero-config, volume persisté
  • • Hermes : cron agent pour génération automatique
  • • public-html : nginx pour fichiers statiques

Déploiement

  • • Build : docker build -t clawfeed .
  • • Run : Docker + réseau tmp_default
  • • Route : /etc/dokploy/traefik/dynamic/clawfeed.yml
  • • Cron : daily 07:00 UTC + on-demand
  • • Skill : clawfeed-management