KubeEdu is an open-source, beginner-friendly platform designed to help you learn and teach Kubernetes through a simple, interactive web UI.
Our mission is to hide the complexity of Kubernetes (K8s) and make core concepts accessible to everyone—no prior CLI or YAML experience required.
- UI-Driven Learning: Fetch pod details, deploy applications, and troubleshoot issues—all from an intuitive web interface.
- Guided Tutorials: Step-by-step labs that teach you real-world Kubernetes tasks.
- Command Translator: See the exact
kubectlcommand or YAML manifest behind every UI action. - Troubleshooting Assistant: Get clear explanations and suggested fixes for common K8s errors.
- Teacher Tools: Create and share custom scenarios, track learner progress, and run classroom exercises.
- Works Locally: Easily connect to your own Minikube, Kind, or VirtualBox-based K8s cluster.
- Learners: Anyone new to Kubernetes who wants to master the basics without wrestling with the CLI.
- Teachers & Instructors: Educators looking for a hands-on, visual way to teach Kubernetes concepts in classrooms, workshops, or online courses.
- Fetch Pod Details: Click a button to list all pods and see their status, logs, and events.
- Deploy an App: Use the UI to deploy NGINX or any sample app—see the equivalent
kubectlcommand. - Troubleshoot: If a pod fails, KubeEdu explains the error and suggests next steps.
- Learn by Doing: Complete guided labs to reinforce each concept, from scaling deployments to fixing CrashLoopBackOff errors.
- Scenario Builder: Create custom learning scenarios for your students.
- Progress Tracking: Monitor learner progress and completed labs.
- Classroom Mode: Run group exercises and track results in real time.
- Framework: FastAPI (Python)
- Database: MongoDB with Motor (async driver)
- Authentication: JWT with bcrypt
- API Documentation: Swagger/OpenAPI
- Framework: React with TypeScript
- UI Components: shadcn/ui
- State Management: React Query
- Routing: React Router DOM
- API Client: Axios
- Forms: React Hook Form
- Build Tool: Vite
- Package Manager: Bun
- Version Control: Git
- Code Quality: ESLint, TypeScript
- API Testing: Swagger UI
- Development Server: Uvicorn (backend), Vite Dev Server (frontend)
- Python 3.12+
- Node.js 18+ or Bun
- Package Manager (npm, pnpm, or bun)
- MongoDB
- Git
-
Clone the repository
git clone https://github.com/yourusername/kubeedu.git cd kubeedu -
Set up Python virtual environment
python -m venv env source env/bin/activate # On Windows use: .\env\Scripts\activate
-
Install backend dependencies
cd backend pip install -r requirements.txt -
Set up environment variables
cp .env.example .env # Edit .env with your configuration -
Start the backend server
make run # Or: uvicorn main:app --reloadThe backend will be available at http://localhost:8000
-
Navigate to frontend directory
cd frontend -
Install dependencies
# Using bun bun install # OR using npm npm install # OR using pnpm pnpm install
-
Set up environment variables
cp .env.example .env
-
Start the development server
# Using bun bun run dev # OR using npm npm run dev # OR using pnpm pnpm run dev
The frontend will be available at http://localhost:5173
Backend:
make run- Start the backend servermake install- Install backend dependencies
Frontend (replace bun with npm or pnpm based on your package manager):
bun run dev- Start the development serverbun run build- Build for productionbun run lint- Run ESLintbun run preview- Preview production build
-
Using Docker:
docker run --name mongodb -d -p 27017:27017 mongo
-
Or install MongoDB locally following the official documentation
Backend (.env):
# MongoDB Configuration
MONGODB_URL=mongodb://localhost:27017
DATABASE_NAME=kubeedu
# JWT Configuration
SECRET_KEY=your-super-secret-key-change-this
ACCESS_TOKEN_EXPIRE_MINUTES=30
# Server Configuration
PORT=8000
HOST=0.0.0.0
Frontend (.env):
VITE_API_URL=http://localhost:8000/api/v1
We want your feedback!
Have an idea, feature request, or suggestion?
👉 Share it in our Ideas Board!
This project is licensed under the MIT License.
Inspired by the Kubernetes community and educators everywhere.
Special thanks to all contributors and early testers!
Make learning Kubernetes visual, simple, and fun with KubeEdu!
Let’s build the best K8s learning platform—together.