{"id":23331109,"url":"https://github.com/sassoftware/kubethor","last_synced_at":"2025-07-11T04:06:41.916Z","repository":{"id":247933480,"uuid":"826848867","full_name":"sassoftware/kubethor","owner":"sassoftware","description":"User-friendly web-based tool that harnesses the flexibility and extensibility of Kubernetes API, making container management accessible.","archived":false,"fork":false,"pushed_at":"2025-06-29T23:47:31.000Z","size":835,"stargazers_count":9,"open_issues_count":6,"forks_count":1,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-06-30T00:28:20.814Z","etag":null,"topics":["cloud-native","containers","contributions-welcome","devops","devops-tools","docker","go","golang","good-first-bug","good-first-issue","help-wanted","kubernetes","kubernetes-cluster","kubernetes-dashboard","kubernetes-monitoring","kubernetes-ui","open-source","react","webapplication"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sassoftware.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-10T13:54:27.000Z","updated_at":"2025-06-29T23:47:35.000Z","dependencies_parsed_at":"2024-12-20T22:31:34.389Z","dependency_job_id":"934834d0-9180-4814-8478-7cf1bd6b6211","html_url":"https://github.com/sassoftware/kubethor","commit_stats":null,"previous_names":["sassoftware/kubethor"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sassoftware/kubethor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sassoftware%2Fkubethor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sassoftware%2Fkubethor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sassoftware%2Fkubethor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sassoftware%2Fkubethor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sassoftware","download_url":"https://codeload.github.com/sassoftware/kubethor/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sassoftware%2Fkubethor/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264726769,"owners_count":23654494,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloud-native","containers","contributions-welcome","devops","devops-tools","docker","go","golang","good-first-bug","good-first-issue","help-wanted","kubernetes","kubernetes-cluster","kubernetes-dashboard","kubernetes-monitoring","kubernetes-ui","open-source","react","webapplication"],"created_at":"2024-12-20T22:31:05.563Z","updated_at":"2025-07-11T04:06:41.910Z","avatar_url":"https://github.com/sassoftware.png","language":"JavaScript","readme":"# Kubethor\n\nKubethor is a Kubernetes management web application built using Go and React. It provides a user-friendly interface to manage and monitor Kubernetes clusters efficiently. \n\n[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://github.com/sassoftware/kubethor/blob/main/LICENSE)\n[![Dockerhub](https://img.shields.io/badge/dockerhub-images-important.svg?logo=Docker)](https://hub.docker.com/r/kubethor/kubethor)\n[![Static Badge](https://img.shields.io/badge/youtube-channel?logo=youtube\u0026label=Tutorial\u0026color=%23FF0000)](https://www.youtube.com/watch?v=Lt12M7kNoPE)\n[![Static Badge](https://img.shields.io/badge/wiki-pedia?logo=wikipedia\u0026label=Documentation)](https://github.com/sassoftware/kubethor/wiki/Kubethor-Documentation-Hub)\n[![Open Source Love](https://firstcontributions.github.io/open-source-badges/badges/open-source-v1/open-source.svg)](https://github.com/sassoftware/kubethor)\n\n## Table of Contents\n\n- [Features](#features)\n- [Built With](#built-with)\n- [Docker Image](#docker-image)\n- [Folder Structure](#folder-structure)\n- [Getting Started](#getting-started)\n  - [Prerequisites](#prerequisites)\n  - [Installation](#installation)\n  - [Running the Application](#running-the-application)\n  - [Running the Application as Standalone](#running-the-application-as-standalone)\n  - [Build and Run Docker Image](#build-and-run-docker-image)\n  - [Kubernetes Deployment](#kubernetes-deployment)\n- [Contributing](#contributing)\n- [License](#license)\n- [Contact](#contact)\n\n## Features\n\n- **Cluster Management:** Easily manage multiple Kubernetes clusters.\n- **Resource Monitoring:** Visualize and monitor Kubernetes resources such as Pods, Services, Deployments, etc.\n- **Log Aggregation:** Centralized logging to view logs from different containers.\n- **Resource Editor:** Edit Kubernetes resources directly from the web interface.\n- **Resource Delete:** Delete Kubernetes resources with ease.\n- **Resource Detail View:** View detailed information about Kubernetes resources.\n- **Switch Between Namespaces:** Seamlessly switch between different namespaces to manage resources.\n\n## Built with\n\n- Frontend\n\n  - [React](https://react.dev/): A JavaScript library for building user interfaces.\n  - [Flowbite](https://flowbite.com/): UI components built with Tailwind CSS.\n\n- Backend\n  - [Go (Golang)](https://go.dev/): The programming language used for the backend.\n  - [Kubernetes Client](https://pkg.go.dev/k8s.io/client-go/kubernetes): Client library for interacting with Kubernetes clusters.\n \n## Docker Image\n\n1. Pull the Docker Image: `docker pull kubethor/kubethor`\n2. Run the Docker Container: `docker run -p 8080:8080 kubethor/kubethor`\n3. Access the application via http://localhost:8080 on your browser.\n\nFor more details about the Docker image, visit the [Kubethor Docker Hub page](https://hub.docker.com/r/kubethor/kubethor).\n\n## Folder Structure\n\nHere's an overview of the project structure:\n\n```\nkubethor/\n├── kubethor-frontend/          # React frontend\n│   ├── public/                 # Public assets\n│   ├── src/                    # React source code\n│       ├── assets              # Contains frontend assets\n│       ├── components          # Contains commonly used hooks and components\n│       ├── layouts             # Contains common page layouts\n│       ├── pages               # Contains pages component\n│       ├── App.jsx\n│       └── ...                 # Other frontend files\n│   ├── package.json            # Node.js dependencies\n│   └── ...                     # Other frontend files\n│\n├── kubethor-backend/           # Go backend\n│   ├── main.go                 # Main Go application\n│   ├── go.mod                  # Go module dependencies\n│   ├── api                     # Contains api's\n│   ├── config                  # Contains configuration\n│   ├── build.sh                # Build script for standalone app\n│   ├── k8s.yaml                # Kubernetes deployment file\n│   ├── Dockerfile              # Kubernetes deployment file\n│   ├── dist                    # Compiled React build (Need to copy from frontend folder after build)\n│   └── ...                     # Other backend files and folders\n│\n├── README.md                   # Project README\n└── ...                         # Other project files\n```\n\n- `kubethor-frontend/`\n\n  - `public/`: Contains static assets such as images, fonts, and the index.html file that serves as the entry point for the React application.\n  - `src/`: The main source code for the React application.\n    - `assets/`: Contains frontend assets such as images, icons, and styles.\n    - `components/`: Contains reusable React components and hooks used throughout the application.\n    - `layouts/`: Contains layout components that define the structure of common page layouts.\n    - `pages/`: Contains page components that represent different views or routes in the application.\n    - `App.jsx`: The main application component that sets up the routing and renders the core layout of the application.\n  - `package.json`: Defines the Node.js dependencies and scripts for the frontend project.\n\n- `kubethor-backend/`\n  - `main.go`: The main Go application file that initializes and runs the backend server.\n  - `go.mod`: Defines the Go module dependencies for the backend project.\n  - `api/`: Contains the API implementations that the backend server exposes.\n  - `config/`: Contains configuration files for different environments and settings used by the backend.\n  - `build.sh`: A build script used to compile the standalone backend application and manage the build process.\n  - `k8s.yaml`: The Kubernetes deployment file that specifies how to deploy the backend application on a Kubernetes cluster.\n  - `Dockerfile`: The Docker build file used to create a Docker image for the backend application.\n  - `dist/`: A directory where the compiled React build is copied from the frontend folder after the build process. This allows the backend to serve the frontend application.\n\n## Getting Started\n\n### Prerequisites\n\n- [Go](https://golang.org/doc/install) (version 1.16 or higher)\n- [Node.js](https://nodejs.org/) (version 18.x or higher)\n- [Docker](https://www.docker.com/get-started) (optional, for containerized deployment)\n- [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/) (for interacting with Kubernetes clusters)\n\nVideo: [![YouTube](http://i.ytimg.com/vi/Lt12M7kNoPE/hqdefault.jpg)](https://www.youtube.com/watch?v=Lt12M7kNoPE)\n\n\n### Installation\n\n1. **Clone the repository:**\n\n   ```sh\n   git clone git@github.com:sassoftware/kubethor.git\n   cd kubethor\n   ```\n\n2. **Frontend Setup:**\n\n   - Navigate to the `kubethor-frontend` directory:\n\n     ```sh\n     cd ../kubethor-frontend\n     ```\n\n   - Install the dependencies:\n\n     ```sh\n     npm install\n     ```\n     If any error use: \n\n     ```sh\n     npm config set registry https://registry.npmjs.org/\n     npm install --verbose\n     ```\n\n   - Build the React app:\n\n     ```sh\n     npm run build\n     ```\n\n   - For running React app in Development Environment:\n\n     ```sh\n     npm run dev\n     ```\n\n3. **Backend Setup:**\n\n   - Navigate to the `kubethor-backend` directory:\n\n     ```sh\n     cd ../kubethor-backend\n     ```\n\n   - Copy dist folder [React app build to backend] from `kubethor-frontend` into `kubethor-backend` directory:\n\n     ```sh\n     cp -r ../kubethor-frontend/dist/ ../kubethor-backend\n     ```\n\n   - Download all dependencies:\n\n     ```sh\n     go mod download\n     ```\n\n   - Build the Go application:\n\n     ```sh\n     go build -o kubethor-backend\n     ```\n\n### Running the Application\n\n1. **Start the Backend:**\n\n   - Navigate to the `backend` directory:\n\n     ```sh\n     cd kubethor-backend\n     ```\n\n   - Run the Go application:\n\n     ```sh\n     ./kubethor-backend\n     ```\n\n   The backend application will run on `http://localhost:8080`.\n\n2. **Start the Frontend:**\n\n   - Navigate to the `frontend` directory:\n\n     ```sh\n     cd ../kubethor-frontend\n     ```\n\n   - Start the development server:\n\n     ```sh\n     npm run dev\n     ```\n\n   The frontend application will run on `http://localhost:3000`.\n\n### Running the Application as Standalone\n\n1. **Build the Standalone Application:**\n\n   - Navigate to the `kubethor-backend` directory:\n\n     ```sh\n     cd kubethor-backend\n     ```\n\n   - Run the `build.sh` script:\n\n     ```sh\n     ./build.sh\n     ```\n\n   \u003e **Note:** The `build.sh` script builds the React application, copies it into the `kubethor-backend` folder, and then embeds it into the Go executable. This single executable can be run to serve the entire application on `http://localhost:8080` without needing to run the frontend separately.\n\n2. **Run the Standalone Application:**\n\n   - After running `build.sh`, start the application:\n\n     ```sh\n     ./kubethor-backend\n     ```\n\n   The application will be available at `http://localhost:8080`.\n\n### Build and Run Docker Image\n\nAs the Docker image is also a type of standalone application, ensure you copy the latest `dist` folder into the `kubethor-backend` folder. If you are building the image to deploy on a host server, make sure to change the `API_BASE_URL` and `API_WS_URL` in `kubethor-frontend` with your host name. The `build.sh` script builds the React application, copies it into the `kubethor-backend` folder. It is good to run `build.sh` before building your docker image.\n\n1. **Build the Docker Image:**\n\n   - Navigate to the `kubethor-backend` directory:\n\n     ```sh\n     cd kubethor-backend\n     ```\n\n   - Build the Docker image:\n\n     ```sh\n     docker build --no-cache -t kubethor-backend .\n     ```\n\n2. **Run the Docker Container:**\n\n   - Run the Docker container:\n\n     ```sh\n     docker run -p 8080:8080 kubethor-backend\n     ```\n\n3. **Push to Docker Registry:**\n\n   - Log in to your Docker registry:\n\n     ```sh\n     docker login YOUR_REGISTERY.com\n     ```\n\n   - Tag the Docker image:\n\n     ```sh\n     docker tag kubethor-backend:latest YOUR_REGISTERY.com/kubethor/kubethor-backend:latest\n     ```\n\n   - Push the Docker image:\n\n     ```sh\n     docker push YOUR_REGISTERY.com/kubethor/kubethor-backend\n     ```\n\n### Kubernetes Deployment\n\n1. **Deploy to Kubernetes Cluster:**\n\n   - Navigate to the `kubethor-backend` directory:\n\n     ```sh\n     cd kubethor-backend\n     ```\n\n   - Ensure you have a Kubernetes cluster running and `kubectl` configured to interact with it.\n   - Update the `k8s.yaml` file in the `kubethor-backend` directory with your **Docker image link and host URL**:\n\n   - Apply the Kubernetes configuration:\n\n     ```sh\n     kubectl apply -f k8s.yaml -n my-namespace\n     ```\n\n   - After successful deployment, go to your host url\n\n   \u003e **Note:** Ensure you have the necessary permissions to deploy resources to your Kubernetes cluster. The `k8s.yaml` file contains the configuration for deploying the Kubethor application, including deployment, service, ingress, and horizontal pod autoscaler and other resources needed for the application to run in a Kubernetes environment.\n\n## Support\n\n### GitHub Issues\n\nSee the [SUPPORT.md](SUPPORT.md) file for information on how to open an issue against this repository.\n\n## Contributing\n\nContributions are welcome! Please read our [Contributing Guidelines](CONTRIBUTING.md) for more information.\n\n## License\n\nThis project is licensed under the Apache 2.0 License. See the [LICENSE](LICENSE) file for details.\n\n## Contact\n\nFor any inquiries or support, please reach out to:\n\n- [Huzaib Sayyed](mailto:huzaib.sayyed@gmail.com)\n- [Vishal Kulkarni](mailto:vishalkulkarniind@gmail.com)\n\n## Testing Information\n\nThis project is tested with BrowserStack.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsassoftware%2Fkubethor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsassoftware%2Fkubethor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsassoftware%2Fkubethor/lists"}