The web UI for OtterScale — manage multi-cluster Kubernetes, storage, virtual machines, and AI workloads from one place.
OtterScale Dashboard is a SvelteKit application that talks to the OtterScale API over Connect RPC. It handles authentication against Keycloak, proxies requests to the gateway, and renders a unified operations console for every connected cluster.
graph LR
Browser -->|HTTP/SSR| SvelteKit[SvelteKit]
Browser -->|Connect RPC<br/>same-origin + x-proxy-target| SvelteKit
SvelteKit -->|OAuth 2.0 / OIDC| Keycloak[Keycloak]
SvelteKit -->|Session / refresh lock| Redis[Redis]
SvelteKit -->|Proxy + Bearer| API[OtterScale API]
API --> K8s[Kubernetes Clusters]
API --> Prometheus[Prometheus]
subgraph Connect RPC used by Dashboard
API --- LinkService[LinkService]
API --- ResourceService[ResourceService]
API --- RuntimeService[RuntimeService]
end
- Multi-cluster Kubernetes management — scopes, resources, and RBAC.
- Storage orchestration — Ceph pools, OSD, NFS, SMB, and object gateways.
- VM lifecycle — create, manage, and access consoles via xterm.js and VNC.
- AI/ML model serving — LLM deployment and an inference proxy.
- Monitoring — built-in metrics and dashboards backed by Prometheus.
Built with SvelteKit, TypeScript, Tailwind CSS, and Vite. UI building blocks include Monaco Editor, xterm.js, NoVNC, and LayerChart, with internationalization powered by Inlang Paraglide.
pnpm install
cp .env.example .env # then fill in the values for your environment
pnpm devIf Keycloak / the API use a private-CA (self-signed) certificate, server-side
requests fail with UNABLE_TO_VERIFY_LEAF_SIGNATURE. Export the cluster CA and
point Node at it (the Helm chart does the equivalent with the mounted
otterscale-ca secret):
kubectl get secret -n otterscale-system otterscale-ca \
-o jsonpath='{.data.ca\.crt}' | base64 -d > ./otterscale-ca.crt
NODE_EXTRA_CA_CERTS=$PWD/otterscale-ca.crt pnpm dev --hostSetup, configuration, and deployment guides will be published in the project documentation. See .env.example for the environment variables the app expects.
OtterScale Dashboard is the web UI for the OtterScale platform. See the otterscale repository for an overview of the full project and its components.
Contributions are welcome. A contribution guide (CONTRIBUTING.md) will follow; until then, please open an issue or a pull request to get involved.
This project is licensed under the GNU Affero General Public License v3.0.