Getting Started

This guide will help you install StreamSpace on your Kubernetes cluster and create your first session.

Prerequisites

Installation

Step 1: Clone the Repository

BASH
git clone https://github.com/JoshuaAFerguson/streamspace.git
cd streamspace

Step 2: Install with Helm

BASH
helm install streamspace ./chart \\
  --namespace streamspace \\
  --create-namespace

Step 3: Custom Configuration (Optional)

Create a custom-values.yaml file to customize your deployment:

YAML
controller:
  config:
    ingressDomain: "streamspace.example.com"
    ingressClass: "traefik"

postgresql:
  enabled: true
  auth:
    postgresPassword: "changeme"

api:
  replicaCount: 2

ui:
  replicaCount: 2

Install with custom values:

BASH
helm install streamspace ./chart \\
  --namespace streamspace \\
  --create-namespace \\
  --values custom-values.yaml

Verify Deployment

Check that all components are running:

BASH
# Check all pods are running
kubectl get pods -n streamspace

# Expected output:
# streamspace-controller-xxx    1/1     Running
# streamspace-api-xxx           1/1     Running
# streamspace-ui-xxx            1/1     Running
# postgresql-xxx                1/1     Running

Create Your First Session

Access the Web UI

BASH
# Port forward to UI
kubectl port-forward -n streamspace svc/streamspace-ui 3000:80

# Open in browser
open http://localhost:3000

Or Create Session with kubectl

BASH
kubectl apply -f - <

Check Session Status

BASH
# Get session details
kubectl get session my-firefox -n streamspace

# Watch session become ready
kubectl get session my-firefox -n streamspace -w

# Get session URL
kubectl get session my-firefox -n streamspace -o jsonpath='{.status.url}'

Configuration

Set Ingress Domain

Configure the domain for session ingresses:

YAML
controller:
  config:
    ingressDomain: "apps.example.com"
    ingressClass: "traefik"

Configure Storage

Set up persistent storage for user home directories:

YAML
storage:
  className: "nfs-client"
  defaultSize: "50Gi"

Enable Monitoring

YAML
monitoring:
  enabled: true
  prometheus:
    enabled: true
  grafana:
    enabled: true

Next Steps

Add Template Repositories

Add more application templates from Git repositories:

BASH
kubectl apply -f - <

Configure User Quotas

Set resource limits per user via the Web UI or API:

  • Maximum concurrent sessions
  • CPU and memory limits
  • Storage quota
  • Maximum session duration