By zzstoatzz
Operate the self-hosted Prefect server at prefect-server.waow.tech — server access, the heavypad home-pool worker, deployments, ad-hoc runs, and infra cost snapshots.
Execute a flow in this repo by hand — locally for debugging, or through the API to exercise the real production worker. Use when asked to run, test, or trigger a flow outside its schedule, and to avoid corrupting production write paths while doing it.
Register, change, or debug Prefect deployments in this repo — schedules, triggers, parameters, work pools, job variables, secret injection, or dependency/python-version problems in flow runs. Use when editing prefect.yaml or when a flow run fails during pull or dependency install.
Diagnose the home-pool process worker on heavypad, where all flow runs actually execute. Use when a flow run is stuck in RUNNING, a run died without logs, the worker seems down, or you need to reach the worker box or restart it safely.
Read or debug the daily infra cost snapshot across Fly, Hetzner, Cloudflare, and Neon. Use when asked whether a teardown reduced spend, why a provider total moved, how a resource is attributed to a project, or when adding a cost connector. Also covers Fly volume and snapshot cleanup.
Query or inspect the self-hosted Prefect server at prefect-server.waow.tech, or the k3s cluster it runs on. Use when you need flow-run/deployment/block state, are told you have no credentials, are unsure which kubectl context is prod, or an /api/ call returns Unauthorized.
External network access
Connects to servers outside your machine
Requires secrets
Needs API keys or credentials to function
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
personal data pipeline and intelligence layer. digests github, tangled.org, and bluesky activity, scores items, generates LLM-curated briefings, and maintains phi's long-term memory. self-hosted across two machines joined by Tailscale: a hetzner VM (k3s) runs the prefect control plane and serves the public edge, while all flow execution runs on a home Linux box that polls outbound — the home box does the compute, the VM serves the bytes.
where it runs
─────────────────────────────────────────────
home box ("heavypad") hetzner VM (k3s, EU)
i9 · 24c · 64GB · 1TB SSD + 2TB NVMe the public edge + control plane
────────────────────────────────── ────────────────────────────────
• home-pool worker runs ALL flow • prefect server (control plane)
execution — outbound poll, no ingress • hub.waow.tech + grafana (public, TLS)
• owns the analytics DuckDB + • serves bytes, not compute
llm-spend.jsonl (the source of truth)
home box ──► rsync hub.duckdb + llm-spend.jsonl every 3m, over tailscale ──► VM
so the edge serves fresh data WITHOUT shipping heavy pages from home (a page
from home behind the EU edge meant a US→EU→US round trip; the data is ~4MB).
principle: home = compute & state factory; VM = public edge & bandwidth.
relays, the PDS, and user-facing products stay cloud.
data sources
─────────────────────────────────────────────
github API ──┐
tangled PDS ──┤
bluesky likes ──┼──► ingest (hourly) ──► DuckDB
phi memory (tpuf) ──┘
│
▼
classify-emails [on ingest ✓]
│
▼
transform (dbt)
[on classify-emails ✓]
│
┌─────────────────────────┼──────────┐
▼ ▼ ▼
brief phi-memory-synthesis hub UI
[on transform ✓] [on transform ✓]
│ │
▼ ▼
briefing.json TurboPuffer
(phi-users-*)
phi identity flows
─────────────────────────────────────────────
phi-tag-maintenance (daily 8am CT) ──► TurboPuffer
│
▼
curate ─────────────────► Semble API
phi-atlas (daily 8am CT) ─► PDS atlas blob
│
▼
docket ─────────────────► PDS docket blob
publication flows
─────────────────────────────────────────────
leaflet-atlas (every 6h) ──► Cloudflare Pages
typeahead-index (every 3d) ──► R2 (prefix-index snapshot, built at home)
bisk-snapshot (every 10m) ──► R2 (bisk.social standings snapshot)
pds-records (ad hoc) ──► PDS record maintenance
cost tracking + health
─────────────────────────────────────────────
costs (daily 08:00 UTC) ──► PDS cost snapshot ──► hub.waow.tech
diagnostics (every 5m) ──► liveness canary (prints host/python/pid)
see docs/hub.md for the full pipeline breakdown.
cp .env.example .env
# fill in: HCLOUD_TOKEN, POSTGRES_PASSWORD, AUTH_STRING, DOMAIN, LETSENCRYPT_EMAIL
uv sync # install workspace (mps + root)
just init # terraform init
just infra # create the VM
just kubeconfig # wait for k3s, fetch kubeconfig
just deploy # cert-manager, prefect server (zig chart), postgres+redis, monitoring, dashboards
just storage # create analytics hostPath + results PVC, apply kubernetes-pool base job template
npx claudepluginhub zzstoatzz/my-prefect-server --plugin mpsEnterprise AI agent orchestration plugin with 150+ commands, 74+ specialized agents, SPARC methodology, swarm coordination, GitHub integration, and neural training capabilities
Upstash Context7 MCP server for up-to-date documentation lookup. Pull version-specific documentation and code examples directly from source repositories into your LLM context.
Persistent coding companion for Claude Code, Pi, and Oh My Pi. MCP-based terminal pet with ASCII art, stats, reactions, and personality.
v9.54.1 — Reliability wave: tangle contextual review correction loop with hard round ceiling, progress-supervised review rounds (per-agent stall watch, descendant-tree kills), council diversity and agy pin fixes, marketplace generator source-of-truth fix, provider troubleshooting runbook and cost-expectations docs. Run /octo:setup.