Stream any app to your browser - An open source platform-agnostic container streaming platform
StreamSpace is a platform-agnostic platform that delivers browser-based access to containerized applications. It features a central Control Plane (API/WebUI) that manages distributed Controllers across various platforms (Kubernetes, Docker, Hyper-V, vCenter, etc.).
Current Version: v1.0.0-beta
StreamSpace is in active development with the core Kubernetes platform functional but several components still in progress.
- Kubernetes Controller: Session lifecycle management, auto-hibernation, template reconciliation
- API Backend: 70+ REST handlers, WebSocket support, PostgreSQL database with 87 tables
- Web UI: 50+ React components, user dashboard, admin panel
- Authentication: Local, SAML 2.0, OIDC OAuth2, MFA (TOTP)
- Helm Chart: Production deployment configuration
- Test Coverage: ~15-20% (unit and integration tests exist but significant gaps remain)
- Plugin System: Framework implemented, but 28 individual plugins are stubs with TODOs
- Docker Controller: Skeleton only (102 lines) - not functional for production use
- VNC Stack: Currently uses LinuxServer.io images; migration to TigerVNC + noVNC planned
- Multi-cluster federation
- WebRTC streaming
- GPU acceleration
- Browser-based access to containerized applications via VNC
- Multi-user support with isolated sessions
- Persistent home directories (NFS)
- Auto-hibernation (scale to zero when idle)
- 200+ pre-built application templates
- Resource quotas and limits per user
- Monitoring with Prometheus and Grafana
- Authentication: Local, SAML 2.0 (Okta, Azure AD, Authentik, Keycloak, Auth0), OIDC OAuth2
- Multi-factor authentication with TOTP
- IP whitelisting and rate limiting
- Compliance frameworks (SOC2, HIPAA, GDPR)
- Audit logging and DLP policies
- Webhooks and integrations (Slack, Teams, Discord, PagerDuty, email)
- Kubernetes 1.19+ (k3s recommended)
- Helm 3.0+
- PostgreSQL database
- NFS storage provisioner (ReadWriteMany)
- 4 CPU cores, 16GB RAM minimum
# Clone repository
git clone https://github.com/JoshuaAFerguson/streamspace.git
cd streamspace
# Deploy CRDs
kubectl apply -f manifests/crds/
# Install via Helm
helm install streamspace ./chart -n streamspace --create-namespace
# Create a session
kubectl apply -f - <<EOF
apiVersion: stream.space/v1alpha1
kind: Session
metadata:
name: my-firefox
namespace: streamspace
spec:
user: john
template: firefox-browser
state: running
resources:
memory: 2Gi
EOFBefore deploying to production, change the default passwords:
POSTGRES_PASSWORD=$(openssl rand -base64 32)
kubectl create secret generic streamspace-secrets \
--from-literal=postgres-password="$POSTGRES_PASSWORD" \
-n streamspace┌─────────────────────────────────────────────────┐
│ Web UI (React) │
│ Dashboard, Catalog, Admin Panel │
└──────────────────────┬──────────────────────────┘
│ REST API + WebSocket
↓
┌─────────────────────────────────────────────────┐
│ Control Plane (API) │
│ Session CRUD, Auth, Plugins, Controller Mgmt │
└──────────────────────┬──────────────────────────┘
│ Secure Protocol
↓
┌─────────────────────────────────────────────────┐
│ StreamSpace Controllers │
│ (Kubernetes, Docker, Hyper-V, etc.) │
└──────────────────────┬──────────────────────────┘
│
↓
┌─────────────────────────────────────────────────┐
│ Target Infrastructure │
│ Sessions (Pods/Containers/VMs) │
└─────────────────────────────────────────────────┘
Templates available via streamspace-templates:
- Browsers: Firefox, Chromium, Brave, LibreWolf
- Development: VS Code, GitHub Desktop
- Productivity: LibreOffice, OnlyOffice
- Design: GIMP, Krita, Inkscape, Blender
- Media: Audacity, Kdenlive
# Controller
cd k8s-controller && make docker-build IMG=your-registry/controller:latest
# API
cd api && go build -o streamspace-api
# UI
cd ui && npm install && npm run build# Controller tests (requires envtest)
cd k8s-controller && make test
# API tests
cd api && go test ./... -v
# UI tests
cd ui && npm test
# Integration tests
cd tests && ./scripts/run-integration-tests.shCurrent test coverage is approximately 15-20%. See tests/reports/TEST_COVERAGE_REPORT.md for details.
- FEATURES.md - Feature list with implementation status
- ROADMAP.md - Development roadmap and next steps
- CLAUDE.md - AI assistant guide for the codebase
- Architecture - System architecture
- Controller Guide - Controller implementation
- Plugin Development - Building plugins
- API Reference - REST API documentation
- Deployment Guide - Production deployment
- Security - Security policy
Contributions welcome! Please read CONTRIBUTING.md first.
- Fork the repository
- Create feature branch:
git checkout -b feature/my-feature - Make changes and add tests
- Commit:
git commit -am 'Add new feature' - Push:
git push origin feature/my-feature - Submit Pull Request
- Test coverage - Help us reach 80%+ coverage
- Plugin implementations - Convert the 28 plugin stubs into working plugins
- Docker Controller - Complete the Docker platform support
- VNC Migration - Help migrate to TigerVNC + noVNC
kubectl logs -n streamspace deploy/streamspace-controller
kubectl describe session <session-name> -n streamspacekubectl get sessions -n streamspace -o jsonpath='{.items[*].status.lastActivity}'StreamSpace is licensed under the MIT License. See LICENSE for details.
- k3s - Lightweight Kubernetes
- LinuxServer.io - Container images (temporary, migration planned)
- TigerVNC and noVNC - Future VNC stack
- GitHub: https://github.com/JoshuaAFerguson/streamspace
- Templates: https://github.com/JoshuaAFerguson/streamspace-templates
- Plugins: https://github.com/JoshuaAFerguson/streamspace-plugins
Note: This project is under active development. While the Kubernetes platform is functional, some features documented as "complete" may have partial implementations. See FEATURES.md for detailed status.