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.
| container | image | status |
|---|---|---|
| apex-prod-apex-api-1 | registry.grove-ops.com/grove/apex-api:prod | Up 43 hours (healthy) |
| apex-prod-apex-core-1 | registry.grove-ops.com/grove/apex-core:prod | Up 6 days |
| beszel-hub | henrygd/beszel:latest | Up 4 weeks |
| databliss-web | registry.grove-ops.com/databliss/web:prod | Up 4 weeks |
| eduhubai-app | eduhubai-moodle:latest | Up 4 weeks |
| eduhubai-cron | eduhubai-moodle:latest | Up 4 weeks |
| gridly-prod-gridly-api-1 | registry.grove-ops.com/grove/gridly-api:prod | Up 6 days (healthy) |
| grove-beszel-agent | henrygd/beszel-agent:latest | Up 4 weeks |
| grove-contact-api-prod | registry.grove-ops.com/databliss/contact-api:prod | Up 3 days |
| grove-login | registry.grove-ops.com/grove/grove-login:prod | Up 31 hours (healthy) |
| grove-taskflow-prod-taskflow-api-1 | registry.grove-ops.com/grove/taskflow-api:prod | Up 6 days (healthy) |
| grove-taskflow-prod-taskflow-app-1 | registry.grove-ops.com/grove/taskflow:prod | Up 43 hours |
| grove-zitadel | ghcr.io/zitadel/zitadel:v4.16.2 | Up 4 weeks (healthy) |
| local-registry | registry:2 | Up 9 hours |
| medgrove-gotrue | supabase/gotrue:v2.192.0 | Up 4 weeks |
| medgrove-web | registry.grove-ops.com/medgrove/web:prod | Up 2 weeks |
| mento-mento-ai-1 | mento-ai:51cd1365f | Up 9 days |
| mento-mento-ai-demo-1 | mento-ai:51cd1365f | Up 9 days |
| mento-mento-demo-1 | mento-ai:51cd1365f | Up 9 days |
| mento-mento-mongo-1 | mongo:8 | Up 4 weeks |
| portfolio-web | registry.grove-ops.com/portfolio/web:prod | Up 4 weeks |
| prod-api-1 | registry.grove-ops.com/grove/api:prod | Up 16 minutes (healthy) |
| prod-api2-1 | 627d598c76cc | Up 31 hours (healthy) |
| prod-armor-1 | registry.grove-ops.com/grove/armor:prod | Up 6 days |
| prod-canopy-1 | registry.grove-ops.com/grove/canopy:prod | Up 6 days |
| prod-cortex-1 | registry.grove-ops.com/grove/cortex:prod | Up 6 days |
| prod-dziennix-1 | registry.grove-ops.com/grove/dziennix:prod | Up 32 hours |
| prod-edsuite-1 | registry.grove-ops.com/grove/edsuite:prod | Up 6 days |
| prod-feeflow-1 | registry.grove-ops.com/grove/feeflow:prod | Up 6 days |
| prod-gateway-1 | registry.grove-ops.com/grove/gateway:prod | Up 43 hours |
| prod-gridly-1 | registry.grove-ops.com/grove/gridly:prod | Up 33 hours |
| prod-growth-1 | registry.grove-ops.com/grove/growth:prod | Up 6 days |
| prod-kudos-1 | registry.grove-ops.com/grove/kudos:prod | Up 6 days |
| prod-lexicon-1 | registry.grove-ops.com/grove/lexicon:prod | Up 6 days |
| prod-library-1 | registry.grove-ops.com/grove/library:prod | Up 6 days |
| prod-lobby-1 | registry.grove-ops.com/grove/lobby:prod | Up 6 days |
| prod-market-1 | registry.grove-ops.com/grove/market:prod | Up 6 days |
| prod-podium-1 | registry.grove-ops.com/grove/podium:prod | Up 6 days |
| prod-pulse-1 | registry.grove-ops.com/grove/pulse:prod | Up 6 days |
| prod-redis-1 | redis:7-alpine | Up 2 weeks (healthy) |
| prod-resolve-1 | registry.grove-ops.com/grove/resolve:prod | Up 6 days |
| prod-slot-1 | registry.grove-ops.com/grove/slot:prod | Up 6 days |
| prod-vow-1 | registry.grove-ops.com/grove/vow:prod | Up 6 days |
| prod-workspace-1 | registry.grove-ops.com/grove/workspace:prod | Up 6 days |
| slate-prod-slate-1 | registry.grove-ops.com/grove/slate:prod | Up 31 hours |
| slate-prod-slate-api-1 | registry.grove-ops.com/grove/slate-api:prod | Up 6 days (healthy) |
| staging-portfolio-web | registry.grove-ops.com/portfolio/web:develop | Up 8 hours |
| uptime-kuma | louislam/uptime-kuma:1 | Up 2 weeks (healthy) |
| vault-prod-vault-1 | registry.grove-ops.com/grove/vault:prod | Up 43 hours |
| vault-prod-vault-api-1 | registry.grove-ops.com/grove/vault-api:prod | Up 43 hours (healthy) |
| container | image | status |
|---|---|---|
| dokploy.1.7svsek0x19a7fxf7i8zruzk89 | dokploy/dokploy:v0.29.12 | Up 8 hours (healthy) |
| dokploy-postgres.1.ifrzfg4tnm2l03t3m6tpu9l79 | postgres:16 | Up 8 hours |
| dokploy-traefik | traefik:v3.6.7 | Up 8 hours |
| grove-zitadel-pg | postgres:17-alpine | Up 8 hours (healthy) |
| grove-zitadel-staging | ghcr.io/zitadel/zitadel:v4.16.0 | Up 34 minutes (healthy) |
generated 2026-09-12 05:30 UTC