Roller Hub

Part of the Simple Agility stack. Roller is the stack's customer communication component: the authoritative sovereign platform where the business engages directly with customers, subscribers, and collectors (SA-7).

Roller is an independent fork of Apache Roller 6.2 modernized for modern containerized operations: Spring Boot, Java 25, PostgreSQL, Markdown-only authoring, and native agent automation via API tokens and Model Context Protocol (/api/mcp).

flowchart TD
    subgraph Sourcing_and_Intake["Stockroom Operations"]
        SR[Stockroom Intake & WMS]
        FLAG["Operator Flag:<br/>'Feature on Blog'"]
        SR --> FLAG
    end

    subgraph Agent_Publisher["Agent Publishing Pipeline"]
        BA["Roller Publishing Agent<br/>(Blogger-Agent Refactor)"]
        ASSETS[("blog-assets CDN<br/>(GitHub Media Storage)")]
        FLAG -->|Item Payload: Photos, Notes, Link| BA
        BA -->|Embed Featured Media| ASSETS
    end

    subgraph Roller_Platform["Roller Production Fleet (docker1)"]
        MCP["Roller MCP Server<br/>(/api/mcp)"]
        API["Automation API<br/>(/api/v1/entries)"]
        WLOG["Reselling Weblog<br/>(Estate Finds & Spotlights)"]
        LM["listmonk Newsletter<br/>(/newsletter/subscribe)"]
        UMAMI["Umami Analytics<br/>(Privacy-first telemetry)"]
        
        BA -->|Bearer Token: Role POST| MCP
        BA -->|Direct Draft Submission| API
        MCP --> WLOG
        API --> WLOG
        WLOG --> LM
        WLOG --> UMAMI
    end

    subgraph Customer_Touchpoints["Customer Outbound"]
        READERS["Public Readers & Collectors<br/>(Organic Search & Social)"]
        SUBSCRIBERS["Email Subscribers<br/>(Weekly Curated Roundups)"]
        EBAY["Active eBay Listings<br/>(Direct Conversion)"]
        
        WLOG --> READERS
        LM --> SUBSCRIBERS
        WLOG -.->|Direct Purchase Link| EBAY
    end

1. The Customer Communication Surface

Three interconnected services provide sovereign customer outreach without third-party platform lock-in:

  1. Weblog Engine (Roller) — Powers multi-weblog publishing, entry drafts, scheduled posts, category indexing, and rich Atom feeds. For the reselling business, Roller hosts the primary showcase weblog.
  2. Newsletter Engine (listmonk) — Manages opt-in subscriber lists, automated email campaigns, and digest broadcasts, fed directly from subscription forms on the blog (/newsletter/subscribe).
  3. Analytics Engine (Umami) — Privacy-first, cookie-free reader telemetry served from the blog's own domain to measure article retention and campaign conversion without ad-blocker degradation.

Production is strictly containerized: since the 2026-10-18 cutover, host docker1 runs docker-compose.prod.yml (Caddy on port 8084) behind Cloudflare ingress (HostDocker1, HomeLabFleetAndIngress). The docker2 stack is stopped.


2. Reseller Customer Flywheel & Inventory Spotlights

Per architectural decision SA-8, inventory items transition from warehouse intake to public customer stories through an operator-assisted pipeline:

  1. Intake & Triage Identification: When an intake item is cataloged in Stockroom (e.g. rare antiquarian books, vintage audio, estate collectibles), the operator flags the item as Feature on Blog.
  2. Automated Content Assembly: The publishing agent (blogger-agent refactored as the native Roller publisher, SA-INIT-01) extracts the item's catalog facts, physical dimensions, condition notes, upright photographs, and generated eBay listing permalink.
  3. Draft Staging: The agent crafts an engaging historical or collector spotlight and stages the draft post on the reselling weblog using Roller's /api/mcp or REST API.
  4. Editorial Review: The operator reviews the staged draft in Roller, fine-tunes narrative tone if desired, and publishes or schedules the entry.
  5. Cross-Channel Synergies & Attribution: Published entries drive organic search traffic, inform newsletter subscribers, and link directly to active eBay listings, store coded coupons, or direct inquiry forms. Traffic-to-sale conversion is tracked and attributed per the SimpleAgilityAttributionRFC framework (SA-12).

3. Agent Integration & Native Automation

Roller v0.2.0 introduces first-class agent automation primitives:


4. Stack Standards & Telemetry Roadmap

Roller conforms to Simple Agility fleet standards (SimpleAgilityDecisionLog, SimpleAgilityTelemetryContract):


5. Navigation & Runbooks

You are about to...ReadWhy
Track marketing conversion from blog posts to Stockroom salesSimpleAgilityAttributionRFCRFC for EPN affiliate tags, marketplace coupons, and Umami click tracking (SA-12)
Connect an agent to Roller via MCP, mint tokens, or review tool capabilitiesRollerMcpExact syntax for claude mcp add, /api/mcp endpoint specs, token scopes, and error states
Create the first admin, inspect user accounts, or recover admin credentialsRollerAdminAccountRunbookStep-by-step administrative credentials management and reset procedures
Deploy, configure, upgrade, or back up a Roller production nodeRollerOnDockerComprehensive operator manual: Compose files, environment variables, TLS, and backups
Coordinate cross-repo initiatives between Stockroom and RollerSimpleAgilityAgentCoordinationActive initiatives ledger (SA-INIT-01, SA-INIT-02) and agent contract rules
Check hardware layout, port bindings, and container topologyHostDocker1Host resources, Roller on port 8084, and cloudflared tunnel ingress

See Also

Additional Cluster Reference Pages