KubeMini is a high-fidelity, interactive full-stack Kubernetes simulator. It features a declarative YAML manifest editor, simulated Master/Control Plane and Worker Node topologies, a real-time kubectl CLI console, dynamic pod scheduling algorithms, live diagnostics container log streaming, and simulated traffic burst generators.
Follow these step-by-step instructions to get the project set up and running locally on your machine in Visual Studio Code.
Before starting, ensure you have the following installed on your local machine:
- Node.js (v18.x or v20.x+ recommended) — Download Node.js
- NPM (comes pre-bundled with Node.js)
- Visual Studio Code — Download VS Code
- Download or clone this project repository to your local computer.
- Open VS Code.
- Go to File ➔ Open Folder... (or
Cmd+Oon macOS /Ctrl+Oon Windows). - Select the root directory containing
package.jsonand click Open.
The server uses environment variables to communicate with services like the Gemini API.
-
In the root directory of the project, create a new file named
.env:cp .env.example .env
(Or manually create a file named
.envand copy the contents of.env.exampleinto it). -
Open the
.envfile and replace the placeholder values with your credentials:# Your Google Gemini API Key GEMINI_API_KEY="your-actual-api-key-here" # Your Local Development Server URL (Defaults to port 3000) APP_URL="http://localhost:3000"
Open the integrated terminal in VS Code:
- Press
Ctrl + `(backtick) or go to Terminal ➔ New Terminal from the top menu. - Run the following command to install all necessary client-side and server-side dependencies:
npm install
With dependencies installed, spin up the unified full-stack development environment:
- In the terminal, execute:
npm run dev
- The terminal will output that the server is running. Vite and Express are configured together to run on a single port:
Server running on http://localhost:3000 - Open your browser and navigate to http://localhost:3000.
Changes made in src/ or server.ts will trigger an instant rebuild and reload in the browser!
If you want to compile and run KubeMini in a production-ready, bundled state:
-
Build the production assets and backend server:
npm run build
This compiles the React SPA static files into
dist/and compiles the Node backend into a highly optimized, self-contained CommonJS file atdist/server.cjsviaesbuild. -
Start the production server:
npm start
The compiled application will run in standalone mode on
http://localhost:3000.
For the best developer experience while editing and exploring the codebase, we recommend installing these VS Code extensions:
- Tailwind CSS IntelliSense (
bradlc.vscode-tailwindcss) — Provides auto-completion and linting for utility classes. - TypeScript Nightly (
ms-vscode.vscode-typescript-next) — Out-of-the-box support for strict typing. - YAML (
redhat.vscode-yaml) — Ideal for editing manifest templates in the editor workspace. - Prettier (
esbenp.prettier-vscode) — Keeps spacing, brackets, and code syntax consistently formatted.
├── .env.example # Environment variables template ├── .gitignore # Git ignored folders (node_modules, dist) ├── index.html # Main SPA mount canvas ├── package.json # Node scripts and package dependencies ├── server.ts # Express backend server (handles state, logs proxy) ├── tsconfig.json # TypeScript configuration mapping ├── vite.config.ts # Vite build tool with integrated Tailwind CSS ├── src/ # Client-side React Application │ ├── devopsDocs.ts # Static documentation and architecture guide content │ ├── index.css # Global Tailwind imports and font-faces │ ├── main.tsx # React application bootstrapping │ ├── types.ts # Declarative TypeScript Interfaces │ └── App.tsx # Main control dashboard containing KubeMini client layouts