-
Notifications
You must be signed in to change notification settings - Fork 2
Getting Started
This guide gets a StreamSpace deployment running and a first session streaming. For production hardening details (TLS, external DB, ingress, autoscaling) see docs/DEPLOYMENT.md.
- Kubernetes 1.19+ — k3s, k8s, or Docker Desktop with Kubernetes enabled work for labs
- Helm 3.x, kubectl, and Docker/Containerd
- PostgreSQL — bundled in the Helm chart for labs; bring your own for production
- A storage class that supports ReadWriteMany — NFS, local-path, etc.
- For local development: Go 1.25+, Node 18+
git clone https://github.com/streamspace-dev/streamspace.git
git clone https://github.com/streamspace-dev/streamspace-templates.git
git clone https://github.com/streamspace-dev/streamspace-plugins.git # optionalcd streamspace
kubectl create namespace streamspace
kubectl apply -f manifests/crds/
helm install streamspace ./chart \
--namespace streamspace \
--set controller.config.ingressDomain=streamspace.local \
--set ingress.enabled=falseThe Helm install seeds a chrome-selkies template that points at the ghcr.io/streamspace-dev/chrome-selkies:latest image. Once the install completes, create a session:
kubectl apply -f - <<'EOF'
apiVersion: stream.space/v1alpha1
kind: Session
metadata:
name: my-chrome
namespace: streamspace
spec:
user: demo
template: chrome-selkies
state: running
resources:
memory: 2Gi
EOFThen either port-forward the UI:
kubectl -n streamspace port-forward svc/streamspace-ui 3000:80…and open http://localhost:3000 to log in and view the session, or use ingress and visit https://streamspace.local.
The UI's session viewer embeds the Selkies WebRTC stream via the control plane's authenticated proxy at /api/v1/http/<session-id>/.
# values.yaml snippet
repositories:
templates:
enabled: true
url: https://github.com/streamspace-dev/streamspace-templates
branch: main
syncInterval: 1h
plugins:
enabled: true
url: https://github.com/streamspace-dev/streamspace-plugins
branch: mainNote
The 195 inherited LinuxServer templates in streamspace-templates/ (under browsers/, webtop/, etc.) reference KasmVNC images and don't currently work end-to-end with the Selkies-only control plane. Use the chrome-selkies template under selkies/ while the Selkies-native catalog is being built out.
# UI
cd ui
npm install
npm run dev
# → http://localhost:3000 (proxies /api → http://localhost:8000)
# API
cd api
go run ./cmd
# K8s Agent (against your kubeconfig)
cd agents/k8s-agent
go run . --api-url=http://localhost:8000Run all tests:
go test -race ./...- Architecture — what's actually happening under the hood
- Deployment-and-Operations — production deployment and day-2 operations
- Templates-Catalog — what templates are available, how to add one
- Development-Guide — repo layout and contribution workflow