streamspace

module
v0.0.0-...-5d8c6d8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 25, 2026 License: MIT

README ΒΆ

StreamSpace

Stream any app to your browser

An open source, platform-agnostic container streaming platform

Kubernetes Go Report Card Status

Features β€’ Quick Start β€’ Architecture β€’ Documentation β€’ Contributing


[!NOTE] Current Version: v2.0-beta.1 - Production Ready

StreamSpace v2.0-beta.1 is ready for production deployment with multi-tenancy, enterprise security, and comprehensive observability.

πŸ“‹ Project Board: StreamSpace v2.0 Development

πŸš€ Overview

StreamSpace delivers browser-based access to containerized applications. It features a central Control Plane (API/WebUI) that manages distributed Agents across various platforms (Kubernetes, Docker).

What's New in v2.0-beta.1

Core Platform:

  • βœ… Multi-Platform Architecture: Control Plane + Agent model
  • βœ… Secure VNC Proxy: WebSocket-based VNC tunneling (<100ms latency)
  • βœ… K8s Agent: Kubernetes agent with session lifecycle management
  • βœ… Docker Agent: Docker platform support with HA backends
  • βœ… High Availability: Multi-pod API, leader election, automatic failover

Enterprise Features:

  • βœ… Multi-Tenancy: Org-scoped access control, JWT claims, cross-tenant prevention
  • βœ… Observability: 3 Grafana dashboards, 12 Prometheus alert rules
  • βœ… API Documentation: OpenAPI 3.0 spec with Swagger UI at /api/docs
  • βœ… Security: 15 CVEs fixed, security headers, 0 Critical/High vulnerabilities

Test Coverage:

  • βœ… Backend: 100% handler coverage (9/9 packages)
  • βœ… UI: 98% test passing (189/191 tests)

See ROADMAP.md for future plans.

✨ Features

Core Features Enterprise Features
πŸ–₯️ Browser-based VNC access πŸ” SSO: SAML 2.0, OIDC, OAuth2
πŸ‘₯ Multi-tenancy with org scoping πŸ›‘οΈ MFA with TOTP
πŸ’Ύ Persistent home directories πŸ“ Audit Logging & Compliance
πŸ’€ Auto-hibernation (scale to zero) 🌐 IP Whitelisting & Rate Limiting
πŸ“¦ 200+ Apps via templates πŸ”Œ Webhooks (16 event types)
πŸ“Š Grafana Dashboards πŸ”” Prometheus Alerts

πŸ› οΈ Quick Start

Prerequisites
  • Kubernetes 1.19+ (k3s recommended)
  • Helm 3.0+
  • PostgreSQL database
  • NFS storage provisioner
Installation
  1. Clone the repository

    git clone https://github.com/streamspace-dev/streamspace.git
    cd streamspace
    
  2. Deploy CRDs

    kubectl apply -f manifests/crds/
    
  3. Install via Helm

    helm install streamspace ./chart -n streamspace --create-namespace
    
  4. 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
    EOF
    

[!TIP] Production Setup: Before deploying to production, ensure you update the default secrets. See the Deployment Guide for details.

🎯 Production Status (v2.0-beta.1)

StreamSpace v2.0-beta.1 is production ready with comprehensive security, observability, and test coverage:

Test Coverage
Component Coverage Status
API Backend 100% βœ… All 9 handler packages
UI Components 98% βœ… 189/191 tests passing
K8s Agent ~80% βœ… Session lifecycle, VNC
Docker Agent ~60% βœ… Platform support
Security Status
  • βœ… 0 Critical/High CVEs - All 15 vulnerabilities fixed
  • βœ… Security Headers - HSTS, CSP, X-Frame-Options
  • βœ… Rate Limiting - 60 req/min default
  • βœ… Input Validation - JSON schema validation
Observability
  • βœ… 3 Grafana Dashboards - Control Plane, Sessions, Agents
  • βœ… 12 Prometheus Alerts - Latency, errors, heartbeat
  • βœ… Structured Logging - With trace IDs
Performance
Metric Target Actual
API Latency (p99) < 800ms ~200ms
Session Startup < 30s ~6s
VNC Latency < 100ms <100ms
Agent Reconnection < 60s ~23s

πŸ—οΈ Architecture

StreamSpace uses a Control Plane + Agent architecture for multi-platform support and scalability.

graph TD
    User[User / Browser] -->|HTTPS| Ingress[Load Balancer]
    Ingress -->|HTTPS| UI[Web UI]
    Ingress -->|HTTPS/WSS| API[Control Plane API]

    subgraph "Control Plane"
        UI
        API
        Hub[WebSocket Hub]
        VNCProxy[VNC Proxy]
        DB[(PostgreSQL)]

        API --> DB
        API --> Hub
        API --> VNCProxy
    end

    subgraph "Execution Plane - Kubernetes"
        K8sAgent[K8s Agent]
        K8sAgent <-->|WebSocket| Hub
        K8sAgent -->|Manage| Pods[Session Pods]
        VNCProxy <-.->|VNC Tunnel| K8sAgent
        K8sAgent <-.->|VNC| Pods
    end

    subgraph "Execution Plane - Docker (v2.1)"
        DockerAgent[Docker Agent]
        DockerAgent <-->|WebSocket| Hub
        DockerAgent -->|Manage| Containers[Session Containers]
    end

Key Components:

  • Control Plane: Central management, authentication, VNC proxy
  • WebSocket Hub: Real-time agent communication and coordination
  • VNC Proxy: Secure tunneling of VNC traffic through Control Plane
  • K8s Agent: Manages Kubernetes pods and sessions
  • Session Pods: Isolated containerized environments with VNC

For detailed architecture, see ARCHITECTURE.md.

πŸ“š Available Applications

Templates are available via streamspace-templates.

  • Browsers: Firefox, Chromium, Brave, LibreWolf
  • Development: VS Code, GitHub Desktop
  • Productivity: LibreOffice, OnlyOffice
  • Media: GIMP, Blender, Audacity, Kdenlive

πŸ’» Development

Build Components
# Build K8s Agent
cd agents/k8s-agent && go build -o k8s-agent .

# Build API
cd api && go build -o streamspace-api

# Build UI
cd ui && npm install && npm run build
Run Tests
# Run all integration tests
cd tests && ./scripts/run-integration-tests.sh

See TESTING.md for detailed testing guides.

πŸ“– Documentation

User Guides
API Documentation
Development
Project Management

🀝 Contributing

Contributions are welcome! Please read CONTRIBUTING.md first.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

StreamSpace is licensed under the MIT License.


Built with ❀️ by the StreamSpace Team

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL