Architecture: Deployment — mcd-tracker
Purpose
Where does it live? Services, infrastructure, CI/CD pipelines, and how they connect. This diagram is also the development workflow — it shows how code moves from editor to production.
Infrastructure Diagram
Development Workflow
Service Inventory
| Service |
Namespace |
Port |
Image |
Funnel URL |
| mcd-tracker-api |
mcd-tracker |
8000 |
harbor.../mcd-tracker/api |
mcd-tracker.tail5b443a.ts.net |
| mcd-tracker-app |
mcd-tracker-app |
3000 |
harbor.../mcd-tracker/app |
mcd-tracker-app.tail5b443a.ts.net |
| Postgres (sidecar) |
mcd-tracker |
5432 |
postgres:16-alpine |
n/a (ClusterIP) |
| Keycloak |
keycloak (shared) |
8080 |
quay.io/keycloak:26.0.7 |
keycloak.tail5b443a.ts.net |
Mac Agent Details
| Component |
Details |
| Hardware |
MacBook Air M1 (Apple Silicon, arm64) |
| Connectivity |
Tailscale — agent connects to Woodpecker server via tailnet |
| Backend |
Woodpecker local backend (shell executor, no Docker) |
| Label filter |
<code>platform=darwin</code> — only picks up iOS pipeline jobs |
| Auto-start |
launchd plist — survives reboot |
| Tools |
Xcode, Fastlane, xcodebuild, codesign |
Key Observations
- Dual-agent CI. Linux agent handles backend + frontend (Docker/kaniko). Mac agent handles iOS (local/shell). Pipeline label
platform=darwin routes iOS jobs to the Mac.
- All dev on archbox. Swift, Python, SvelteKit — all written on the Linux workstation. The Mac is infrastructure, not a workstation. It only executes builds.
- Three delivery targets. Harbor (containers → ArgoCD → k3s), TestFlight (iOS beta), App Store (iOS production). Same Forgejo + Woodpecker pipeline orchestrates all three.
- Keycloak is shared infrastructure. The
mcd-tracker realm lives in the existing Keycloak deployment (keycloak namespace). No new Keycloak instance — just a new realm.
- Two namespaces for two services. API and frontend each get their own k8s namespace (per service-onboarding-sop). Postgres is a sidecar in the API namespace.
arch-domain-mcd-tracker — entity model
arch-dataflow-mcd-tracker — runtime flows
project-mcd-tracker — project page
service-onboarding-sop — how services join the cluster
convention-kustomize-overlay — deployment manifest pattern