Skip to content

Getting Started

joshuaaferguson edited this page Nov 15, 2025 · 2 revisions

Getting Started

Follow this guide when spinning up StreamSpace locally or in a lab cluster. It distills the key steps from README.md, QUICKSTART.md, and docs/SAAS_DEPLOYMENT.md.

Prerequisites

  • Kubernetes 1.19+ (k3s, k8s, or Docker Desktop with Kubernetes enabled)
  • Helm 3.x, kubectl, Docker/Containerd, and optional MetalLB or cloud LoadBalancer
  • PostgreSQL (bundled in Helm chart for labs) and ReadWriteMany storage (NFS/local-path)
  • Go 1.21+, Node 18+, Docker, kubectl, and Helm for development (make dev-setup validates)

Clone Repositories

git clone https://github.com/JoshuaAFerguson/streamspace.git
git clone https://github.com/JoshuaAFerguson/streamspace-templates.git
git clone https://github.com/JoshuaAFerguson/streamspace-plugins.git

Helm Quickstart

cd streamspace
kubectl create namespace streamspace
helm install streamspace ./chart \
  --namespace streamspace \
  --set controller.config.ingressDomain=streamspace.local \
  --set ingress.enabled=false

Use docs/DEPLOYMENT.md for hardened values (TLS, external DB, ingress, autoscaling).

Demo Session

kubectl apply -f - <<'EOF'
apiVersion: stream.space/v1alpha1
kind: Session
metadata:
  name: my-firefox
  namespace: streamspace
spec:
  user: demo
  template: firefox-browser
  resources:
    memory: 2Gi
EOF

Then port-forward the UI or ingress and reach https://my-firefox.streamspace.local.

Template & Plugin Sync

# values.yaml snippet
repositories:
  templates:
    enabled: true
    url: https://github.com/JoshuaAFerguson/streamspace-templates
    branch: main
    syncInterval: 1h
  plugins:
    enabled: true
    url: https://github.com/JoshuaAFerguson/streamspace-plugins
    branch: main

Local UI Dev Loop

cd ui
npm install
npm run dev

Point VITE_API_URL to your API endpoint. Backend binaries can be started with go run ./cmd/main.go from api/ and controller/.

Continue to Deployment-and-Operations for production-ready settings and Development-Guide for deeper contributor workflows.

Clone this wiki locally