Skip to content

Architecture

Single-server platform that automatically publishes blog content daily using AI.

System Overview

graph TB
    Internet((Internet)) --> Caddy["Caddy<br>TLS & Routing"]
    Caddy --> Ghost["Blogging Platform<br>(Ghost CMS)"]
    Caddy --> n8n["Automation<br>(n8n)"]
    Caddy --> MCP["MCP Services"]
    Caddy --> Mon["Monitoring"]

Blogging Platform (Ghost CMS)

Three Ghost blogs backed by a shared MySQL database. Content is created automatically via the MCP API or manually through Ghost Admin.

graph TB
    Admin["Ghost Admin<br>(browser)"] --> cam4["Cam4 Blog"]
    Admin --> cam4m["Cam4Models Blog"]
    Admin --> cam4p["Cam4Pays Blog"]

    gmcp["Ghost MCP<br>(API)"] --> cam4
    gmcp --> cam4m
    gmcp --> cam4p

    cam4 --> MySQL[("MySQL<br>3 databases")]
    cam4m --> MySQL
    cam4p --> MySQL

Automation (n8n)

n8n runs daily workflows that exec into Claude Code runner containers. Each runner uses MCP servers to research topics, generate content, create images, and publish to the correct Ghost blog.

graph LR
    n8n["n8n"] -. "docker exec" .-> R1["Claude Runner<br>(Cam4)"]
    n8n -. "docker exec" .-> R2["Claude Runner<br>(Cam4Models)"]
    n8n -. "docker exec" .-> R3["Claude Runner<br>(Cam4Pays)"]

    R1 --> MCP["MCP Servers"]
    R2 --> MCP
    R3 --> MCP

    MCP --> ghost["Ghost MCP<br>→ publish posts"]
    MCP --> reddit["Reddit MCP<br>→ research topics"]
    MCP --> runware["Runware MCP<br>→ generate images"]
    MCP --> playwright["Playwright MCP<br>→ scrape the web"]
    MCP --> twitter["Twitter MCP<br>→ social media"]
    MCP --> stockimages["Stock Images MCP<br>→ stock photos"]
    MCP --> memes["Memes MCP<br>→ meme generation"]

See n8n Automation for pipeline details and schedules.

Monitoring

  • Dozzle — real-time container log viewer
  • Glances — system resource monitor (CPU, memory, disk)
  • Docs — this documentation site (MkDocs Material)