grove · operator hub
The operator front door for the whole fleet — every platform service and every product, one place. This page is never customer-facing: it's for whoever is running the boxes.
The AI method: portable skills, commands, and templates (business/ + engineering/) plus the fleet strategy in docs/masterplan/. bootstrap.sh copies it into every consumer repo — never symlinks, never product code, never hosted anywhere.
The shared machine room every product deploys through: Gitea (git origin), Dokploy (deploys), Docker registry, Uptime Kuma (monitoring), Zitadel (fleet identity), backups, and the onboarding runbook. Operator-only — product traffic never touches its domain.
School management platform — the flagship. A monorepo of 33 apps (apex, gateway, slate, dziennix, …) on shared packages and one Postgres. Pilots the Zitadel auth rollout (Z1 proven).
Dental Zone — a clinic OS for healthcare. The first native platform tenant: onboarded end-to-end through grove's runbook (staging and prod proven) before the product itself is built. Never touches the legacy deploy path.
The umbrella company site — the public face above all products. Astro static site with the solutions taxonomy (Education / Healthcare), EdGrove & MedGrove pages, blog, and privacy. Future home of the customer account layer.
Moodle 4.5 LMS — the reference app showcasing the white-label learning-management offering. Standard tenant: own moodle database and role on the shared G12 Postgres, Moodle-native auth.
AI component service (Node) — the one tenant still living outside the grove, on Fly.io with MongoDB. Mid-onboarding; the Mongo → Postgres migration is deliberately gated until real users arrive.
Personal portfolio for ertanarslan.net. Retro-onboarded the hard way: the old Django + systemd install was archived and torn down, replaced by a static rebuild shipped through the platform loop.
A reserved name — the brain is already synced in, but no product code exists yet. When it wakes, it onboards through the same grove runbook as everything else.