everyone-ai

A self-service internal developer platform that launches isolated Claude Code workspaces on Kubernetes via a web portal.

https://github.com/davidbmar/everyone-ai  ·  private  ·  shipped

What it is

everyone-ai is an internal AI workspace platform designed for teams. It provides a web-based portal where users can select from pre-configured templates (e.g., Python, Node.js, HR Agent) to launch personal VS Code environments backed by Claude Code. The system runs on a lightweight k3s cluster, managing workspace lifecycle (creation, monitoring, deletion) and exposing them via secure HTTPS endpoints without requiring local machine configuration or credential management.

Features

Quickstart

npx afterburner bootstrap --host <ip> --ssh-key ~/.ssh/id_rsa
npx afterburner install
helm install everyone-ai-portal ./charts/portal -f profiles/k3s.yaml -f config.yaml --namespace myteam --create-namespace
open https://portal.<your-domain>

Architecture

flowchart TD
    User["User (VPN)"] -->|HTTPS| Traefik["Traefik IngressRoute"]
    Traefik --> Portal["Portal Server (Node/Express:3000)"]
    Portal -->|API Calls| K8sClient["K8s Client (portal/src/k8s.js)"]
    K8sClient -->|Create/Manage| ControlPlane["k3s Control Plane"]
    ControlPlane -->|Schedules| WorkspacePod["Workspace Pod\n(code-server + Claude Code)"]
    ControlPlane -->|Schedules| TargetPod["Target Pod\n(User App)"]
    User -->|Direct Access| WorkspacePod
    User -->|Direct Access| TargetPod

How it's built

The platform consists of a Node.js/Express backend serving a vanilla JavaScript SPA frontend. It interacts directly with the Kubernetes API to spawn 'workspace' pods (running code-server + Claude Code) and 'target' pods (for deployed apps). Infrastructure is bootstrapped using a custom CLI tool called 'afterburner', which installs k3s on remote Linux VMs via SSH and generates Helm charts for deployment. Traefik acts as the ingress controller.

How it runs

sequenceDiagram
    participant U as User
    participant P as Portal (Express)
    participant K as K8s API
    participant W as Workspace Pod
    
    U->>P: POST /api/workspaces (template, name)
    P->>K: Create Pod (code-server image)
    K-->>P: Pod Created (Pending)
    P-->>U: 201 Created (workspace ID)
    
    U->>P: GET /api/workspaces/:id/events (SSE)
    P->>K: Watch Pod Status
    K-->>P: Status: Running
    P-->>U: SSE Event: Ready (URL)
    
    U->>W: Open VS Code Link (HTTPS)
    W-->>U: Serve IDE Interface

How to apply & reuse

Operators use the `afterburner` CLI to bootstrap a Linux VM into a k3s cluster and generate Helm install commands. Developers connect via VPN, access the team-specific portal URL, select a template from the App Catalog, and click Launch. The system provisions a unique workspace pod and returns a browser-based VS Code link within ~30 seconds.

At a glance

CapabilitiesWorkspace Lifecycle ManagementKubernetes Cluster BootstrappingInteractive Setup WizardReal-time Provisioning Status (SSE)Multi-team Fleet ManagementTemplate-based Environment Initialization
ComponentsPortal Server (Express.js)Afterburner CLI (Node.js)Frontend SPA (Vanilla JS)Helm ChartsSetup Wizard (Bash)Playwright E2E Tests
TechNode.jsExpressKubernetes (k3s)HelmTraefikcode-serverClaude CodeBashPlaywright
Depends onNode.js >= 18kubectl >= 1.27helm >= 3.12Linux VM (Ubuntu 20.04+)SSH AccessVPN Connection
Integrates withAnthropic Claude CodeVS Code (via code-server)ECR (Container Registry)Traefik Ingress
PatternsInternal Developer Platform (IDP)GitOps-lite (CLI-driven infra)Server-Sent Events (SSE) for statusMulti-tenant Namespace IsolationEphemeral Compute Environments
Reuse tagskubernetes-operatordev-portalai-workspaceself-hostedclaude-codevscode-web

⚠ Needs attention