Post

Self-Hosted AI Delivery Fabric — Architecture Deep Dive

Issue → agent → CI → PR pipeline design with policy gates and human approval.

Self-Hosted AI Delivery Fabric — Architecture Deep Dive

Design notes for AI Fabric — a self-hosted alternative to cloud-only “AI dev tools” that keeps code, issues, and runners on your own Gitea instance.

Design goals

  1. Gitea as SSOT — issues, branches, PRs, and Actions stay in one place
  2. Policy before mergefmt, lint, test are hard gates, not suggestions
  3. Human in the loop — agents open PRs; humans approve merges
  4. Observable control plane — Telegram bot for status without SSH

Request flow

flowchart LR
  Issue[Gitea Issue] --> Handler[issue-handler]
  Handler --> Agent["cursor-agent / MCP"]
  Agent --> Branch[Feature Branch]
  Branch --> CI[Gitea Actions]
  CI -->|pass| PR[Pull Request]
  CI -->|fail| Agent
  PR --> Human[Human Review]
  Human --> Merge[Merge]
  TgBot[Telegram Bot] --> Handler

Why not GitHub Copilot-only?

  • Private Gitea (git.produktor.io) holds proprietary stacks
  • Runners and LLM endpoints stay on-premises (Ollama-compatible)
  • Issue → PR automation must respect repo-specific CI and branch policies

Components

LayerResponsibility
issue-handlerOrchestration, retries, PR body policy
gitea-mcpTool surface for agents (repos, issues, files)
gitea-runnerIsolated CI execution (act_runner replicas)
tg-botNotifications and manual triggers

AI Fabric project post · produktor.io stack

This post is licensed under CC BY 4.0 by the author.