MCP Memory Service — Deployment Landscape

MCP Memory Service — Deployment Landscape An architecture diagram generated by Archify. Developer Mac · local work, manual pushes · Architecture component Developer Mac local work, manual pushes Codeberg · origin · issues · PRs · releases · Architecture component · leading Codeberg origin · issues · PRs · releases leading Forgejo Runner · self-hosted, label docker · Hetzner VM tinyclaw (ubuntu-4gb-nbg1-1) · CI Forgejo Runner self-hosted, label docker CI Gitea 1.26.4 · pull mirror, every 8 hours · Hetzner VM tinyclaw (ubuntu-4gb-nbg1-1) › reachable only over the Tailnet · mirror Gitea 1.26.4 pull mirror, every 8 hours mirror PyPI · mcp-memory-service · Architecture component PyPI mcp-memory-service Docker Hub · doobidoo/mcp-memory-service · Architecture component Docker Hub doobidoo/mcp-memory-service Cloudflare Pages · mcpmemory.services · Architecture component · canonical Cloudflare Pages mcpmemory.services canonical GitHub Mirror · Actions off, CodeQL only · Architecture component GitHub Mirror Actions off, CodeQL only GitHub Pages · docs/ redirect stub · Architecture component GitHub Pages docs/ redirect stub git push + tag Forgejo Actions pulls every 8h tag v* → publish-pypi tag v* → buildx push site/** → wrangler fast-forward main, never tags serves docs/ redirect Hetzner VM tinyclaw (ubuntu-4gb-nbg1-1) reachable only over the Tailnet

One machine, two roles

  • • tinyclaw runs the Forgejo runner that feeds PyPI, Docker Hub and Cloudflare Pages
  • • The same VM hosts the Gitea mirror, reachable only over the Tailnet
  • • If that VM goes down, releases and the mirror stop together

One-way streets

  • • GitHub only ever receives a fast-forwarded main, and never tags
  • • Gitea pulls from Codeberg; it never pushes back
  • • GitHub Pages serves a redirect stub, not content

Exactly one publisher

  • • Only release.yml on the Hetzner runner publishes packages
  • • The mirror holds no secrets, so it cannot publish anything
  • • Hand-authored snapshot of 2026-08-28, not generated from repository state