| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
parent directory.. | ||||
Bun + Turborepo workspace. The packages share a single design system + API client; per-backend apps are thin (a couple of dozen lines apiece). The per-cloud simulator console SPAs live in the sockerless-cloud repository alongside the simulators they front.
| Package | Role |
|---|---|
| core | Design system (tokens, components), API client, TanStack Query hooks, BackendApp + SimulatorApp shells. Imported by every other UI package. |
| backend-{ecs,lambda,cloudrun,gcf,aca,azf,docker} | Per-backend Vite apps. Each is <BackendApp title="..." /> plus an index.html that loads the design-system fonts + index.css. |
| admin | Cross-backend admin dashboard: component health, containers, contexts, process lifecycle, topology lifecycle, logs, resources, cleanup, and make-command recovery panels. |
core/src/styles/tokens.css defines:
The dark class is toggled by the <ThemeToggle> component (sidebar footer) backed by the useTheme hook (localStorage + prefers-color-scheme + dark default).
<Modal> wraps the native <dialog> element so focus trapping + ESC + backdrop click come from the platform. <ContainerDetailModal> is the canonical example — opened from a row click on the Containers page.
TanStack Query polls each endpoint at a fixed interval (5–10s). refetchIntervalInBackground is the TanStack default (false) so polling pauses when the tab is hidden.
From this directory (ui/):
The repo's root Makefile bundles the simulator + backend + admin UI as a single stack. From the repo root (one directory above this one):
make stack-aws-ecs # sim-aws + backend-ecs + admin
make stack-aws-lambda # sim-aws + backend-lambda + admin
make stack-gcp-cloudrun # sim-gcp + backend-cloudrun + admin
make stack-gcp-gcf # sim-gcp + backend-gcf + admin
make stack-azure-aca # sim-azure + backend-aca + admin
make stack-azure-azf # sim-azure + backend-azf + admin
make stack-status # show which components are running + their PIDs
make stack-down # stop every running stack process and clean up .stack-pids/Each stack-*-* target builds the three components, starts them as background processes, and writes their PIDs to .stack-pids/ so stack-down can find them later. Internally these targets compose make start-component calls for the simulator and backend (see below + docs/ADMIN_ORCHESTRATION.md) and start admin with its registered component URLs. Logs land in .stack-pids/sim.log, .stack-pids/backend.log, and .stack-pids/admin.log; supervised simulator/backend exits are recorded in matching .exit files.
For simulator stacks, the root Makefile also writes .stack-pids/backend.env when the selected backend needs local defaults. ACA / AZF get local subscription and resource-group values plus reverse-agent callbacks, Cloud Run gets SOCKERLESS_GCR_PROJECT plus the simulator Cloud Logging endpoint, GCF gets SOCKERLESS_GCF_PROJECT, and Lambda gets a simulator role ARN plus callback URL.
Default ports (overridable via env in make/stack.mk):
Open the admin UI at http://localhost:9090/ui/ once stack-status reports it green. From there, the admin UI links each component's own /ui/ route, starts/stops/restarts individual topology instances, rebuilds them, and can stop the whole stack.
For richer topologies, use the granular per-component targets — admin's REST surface drives these too:
make start-component KIND=sim CLOUD=aws NAME=sim-1 PORT=4566
make start-component KIND=sim CLOUD=gcp NAME=sim-2 PORT=4567
make start-component KIND=backend CLOUD=aws BACKEND=ecs NAME=ecs-1 PORT=3375 SIM_PORT=4566
make logs-component NAME=ecs-1 LINES=200
make stop-component NAME=ecs-1
make rebuild-component KIND=backend CLOUD=aws BACKEND=ecs
make status-components # show every running component
make stop-components # SIGTERM every running componentPersist the topology in sockerless.yaml at the repo root and admin will reconcile + drive lifecycle automatically. When no topology exists, the admin topology page offers default local contexts for Azure ACA, AWS ECS, and GCP Cloud Run and shows the equivalent make stack-* command. See docs/ADMIN_ORCHESTRATION.md for the full schema + REST surface.
When you only want to iterate on one backend's UI without booting the full stack, run that package's Vite dev server. It assumes the backend is already running on :3375 (for example, start it via make stack-aws-ecs from the root).
cd ui/packages/backend-ecs
bun run dev # vite serves on :5173 by default; proxies API calls to :3375
# Ctrl-C to stop the dev server.The Go backend serves the built UI at /ui/ via go:embed; the dev server is only for hot-reload-during-development.
cd ui
bun install
bunx turbo run build # all packages
# or one package: bun --filter '@sockerless/ui-admin' run build| Back | FazBrowse Home | New Git URL |