{"id":26267770,"url":"https://github.com/oslabs-beta/kubby-buddy","last_synced_at":"2025-04-30T19:21:16.333Z","repository":{"id":174052630,"uuid":"651609643","full_name":"oslabs-beta/kubby-buddy","owner":"oslabs-beta","description":"Kubby Buddy, your container management buddy. Making Docker easier.","archived":false,"fork":false,"pushed_at":"2024-01-19T20:06:42.000Z","size":32246,"stargazers_count":78,"open_issues_count":0,"forks_count":7,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-08T10:53:18.857Z","etag":null,"topics":["containers","docker"],"latest_commit_sha":null,"homepage":"https://kubbybuddy.com/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oslabs-beta.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-06-09T16:15:54.000Z","updated_at":"2025-01-17T13:14:33.000Z","dependencies_parsed_at":"2024-01-19T21:27:45.061Z","dependency_job_id":"d69d1d70-43b7-45b3-98d4-f6921a820a7b","html_url":"https://github.com/oslabs-beta/kubby-buddy","commit_stats":null,"previous_names":["oslabs-beta/kubby-buddy"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oslabs-beta%2Fkubby-buddy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oslabs-beta%2Fkubby-buddy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oslabs-beta%2Fkubby-buddy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oslabs-beta%2Fkubby-buddy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oslabs-beta","download_url":"https://codeload.github.com/oslabs-beta/kubby-buddy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251767210,"owners_count":21640470,"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":["containers","docker"],"created_at":"2025-03-14T04:18:12.280Z","updated_at":"2025-04-30T19:21:16.232Z","avatar_url":"https://github.com/oslabs-beta.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Table of Contents\n\n- [About](#about)\n- [Demo](#demo)\n- [Setup](#setup)\n- [File Structure](#file-structure)\n- [Contributing](#contibuting)\n- [Progress](#progress)\n- [Meet the Team](#meet-the-team)\n- [License](#license)\n\n### Visit our docker extenstion repository [here](https://github.com/oslabs-beta/kubby-buddy-extension)\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./src/assets/logo.png\"\u003e\n\u003c/p\u003e\n\n## ABOUT\n\n**Kubby Buddy** is your container management buddy, giving you an easy to use GUI for all your Docker needs. All you need to do is launch our application, and your local images will load into our app, from there you can easily view, launch, stop and even delete your containers and images straight from our app. We also include metrics and even averages of your CPU and memory usgage utilizing a containerized database running on your local machine.\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/circleci-343434?style=for-the-badge\u0026logo=circleci\u0026logoColor=white\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/PostgreSQL-316192?style=for-the-badge\u0026logo=postgresql\u0026logoColor=white\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Chart.js-FF6384?style=for-the-badge\u0026logo=chartdotjs\u0026logoColor=white\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Cypress-17202C?style=for-the-badge\u0026logo=cypress\u0026logoColor=white\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Docker-2CA5E0?style=for-the-badge\u0026logo=docker\u0026logoColor=white\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Express.js-000000?style=for-the-badge\u0026logo=express\u0026logoColor=white\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Jest-C21325?style=for-the-badge\u0026logo=jest\u0026logoColor=white\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/ts--node-3178C6?style=for-the-badge\u0026logo=ts-node\u0026logoColor=white\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/npm-CB3837?style=for-the-badge\u0026logo=npm\u0026logoColor=white\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/React-20232A?style=for-the-badge\u0026logo=react\u0026logoColor=61DAFB\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/React_Query-FF4154?style=for-the-badge\u0026logo=React_Query\u0026logoColor=white\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Sass-CC6699?style=for-the-badge\u0026logo=sass\u0026logoColor=white\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/CSS3-1572B6?style=for-the-badge\u0026logo=css3\u0026logoColor=white\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/HTML5-E34F26?style=for-the-badge\u0026logo=html5\u0026logoColor=white\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge\u0026logo=typescript\u0026logoColor=white\"/\u003e\n\u003c/div\u003e\n\n## Demo\n\nHere we can see creating a container from an image.\n\u003cimg src=\"./src/assets/Main_App_Images.gif\"/\u003e\n\nHere we can see our running containers, starting and stopping those containers as well as the logs for those containers.\n\u003cimg src=\"./src/assets/Main_App_Containers.gif\"/\u003e\n\nHere we create a new volume, then delete it.\n\u003cimg src=\"./src/assets/Main_App_Volumes.gif\"/\u003e\n\n## SETUP\n\nFollow these steps for easy setup.\n\n1. Fork and clone this repository.\n\n```bash\ngit clone https://github.com/\u003cyour-github-username\u003e/kubby-buddy.git\n```\n\n2. Navigate to the directory of the cloned repository.\n\n```bash\ncd kubby-buddy\n```\n\n3. Install the npm packages.\n\n```bash\nnpm install\n```\n\n4. Start kubby buddy in your terminal.\n\n```bash\nnpm start\n```\n\n5. In your browser open 'http://localhost:8080/'.\n\nAnd you're done, enjoy the simplicity of using your new container management buddy.\n\n## File Structure\n\n```\n.\n├── LICENSE\n├── README.md\n├── __mocks__\n│   ├── dockerode.ts\n│   ├── fileMock.ts\n│   ├── node-fetch.ts\n│   └── urlMock.ts\n├── __tests__\n│   ├── controllers\n│   └── routes\n├── babel.config.js\n├── cypress\n│   ├── e2e\n│   ├── fixtures\n│   ├── integration\n│   └── support\n├── cypress.config.ts\n├── docker-compose.yml\n├── jest.config.ts\n├── package-lock.json\n├── package.json\n├── server\n│   ├── controllers\n│   ├── db.ts\n│   ├── models\n│   ├── routes\n│   ├── server.ts\n│   └── util.ts\n├── src\n│   ├── App.scss\n│   ├── App.tsx\n│   ├── UserContext.tsx\n│   ├── assets\n│   ├── components\n│   ├── global.d.ts\n│   ├── index.html\n│   ├── index.tsx\n│   └── types.ts\n├── tsconfig.json\n├── types.ts\n└── webpack.config.cjs\n```\n\n## Contibuting\n\nContributing is what makes the open source community great. If you want to contribute to this project, you can follow these guidelines.\n\n- Fork and clone the repository.\n- Branch off the dev branch, with a branch name starting in feat, fix, bug, docs, test, wip or merge, then adding a new folder named whatever it is you are adding. (ex. feat/database)\n- When you commit, be sure to follow [conventional commit](https://www.conventionalcommits.org/en/v1.0.0/) standards.\n- Once your new feture is built out, you can submit a pull request to dev.\n\n## Progress\n\n| Feature                                                | Status                                                |\n| ------------------------------------------------------ | ----------------------------------------------------- |\n| Image page                                             | \u003cimg src=\"./src/assets/bear-party.webp\" width=\"20\"/\u003e  |\n| Container page                                         | \u003cimg src=\"./src/assets/bear-party.webp\" width=\"20\"/\u003e  |\n| Volume page                                            | \u003cimg src=\"./src/assets/bear-party.webp\" width=\"20\"/\u003e  |\n| Fix containerized database                             | \u003cimg src=\"./src/assets/bear-bongo.webp\" width=\"20\"/\u003e  |\n| Impliment Grafana                                      | \u003cimg src=\"./src/assets/bear-bongo.webp\" width=\"20\"/\u003e  |\n| Bring extention to feature parody                      | \u003cimg src=\"./src/assets/bear-bongo.webp\" width=\"20\"/\u003e  |\n| Add alerts for when buttons fail to load               | \u003cimg src=\"./src/assets/bear-snooze.webp\" width=\"20\"/\u003e |\n| Fix container not loading when started outside the app | \u003cimg src=\"./src/assets/bear-snooze.webp\" width=\"20\"/\u003e |\n| Add more diverse and costomizable commands             | \u003cimg src=\"./src/assets/bear-snooze.webp\" width=\"20\"/\u003e |\n\n- \u003cimg src=\"./src/assets/bear-party.webp\" width=\"20\"/\u003e = Finished feature\n- \u003cimg src=\"./src/assets/bear-bongo.webp\" width=\"20\"/\u003e = Work in progress feature\n- \u003cimg src=\"./src/assets/bear-snooze.webp\" width=\"20\"/\u003e = Not yet started feature\n\n## Meet the Team!\n\n\u003ctable align=\"center\"\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"https://avatars.githubusercontent.com/u/123416896?v=4\" width=\"100\"/\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003eChang Moon\u003c/b\u003e\u003c/sub\u003e\n      \u003cbr /\u003e\n      \u003ca href=\"https://www.linkedin.com/in/chang-moon-6b2b91278/\"\u003e\u003cimg src=\"./src/assets/linkedin-favicon.png\" width=\"20\"/\u003e\u003c/a\u003e\n      \u003ca href=\"https://github.com/ThickCorgi\"\u003e\u003cimg src=\"./src/assets/github-favicon.png\" width=\"20\"/\u003e\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"https://avatars.githubusercontent.com/u/126903033?v=4\" width=\"100\"/\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003eJosh Goo\u003c/b\u003e\u003c/sub\u003e\n      \u003cbr /\u003e\n      \u003ca href=\"https://www.linkedin.com/in/joshgoo/\"\u003e\u003cimg src=\"./src/assets/linkedin-favicon.png\" width=\"20\"/\u003e\u003c/a\u003e\n      \u003ca href=\"https://github.com/YeChanGoo\"\u003e\u003cimg src=\"./src/assets/github-favicon.png\" width=\"20\"/\u003e\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"https://avatars.githubusercontent.com/u/108921232?v=4\" width=\"100\"/\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003eSteve Lemlek\u003c/b\u003e\u003c/sub\u003e\n      \u003cbr /\u003e\n      \u003ca href=\"https://www.linkedin.com/in/steve-lemlek/\"\u003e\u003cimg src=\"./src/assets/linkedin-favicon.png\" width=\"20\"/\u003e\u003c/a\u003e\n      \u003ca href=\"https://github.com/CoachSteveMichael\"\u003e\u003cimg src=\"./src/assets/github-favicon.png\" width=\"20\"/\u003e\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"https://avatars.githubusercontent.com/u/22490059?v=4\" width=\"100\"/\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003eTrey Walker\u003c/b\u003e\u003c/sub\u003e\n      \u003cbr /\u003e\n      \u003ca href=\"https://www.linkedin.com/in/kasualkid12/\"\u003e\u003cimg src=\"./src/assets/linkedin-favicon.png\" width=\"20\"/\u003e\u003c/a\u003e\n      \u003ca href=\"https://github.com/kasualkid12\"\u003e\u003cimg src=\"./src/assets/github-favicon.png\" width=\"20\"/\u003e\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"https://avatars.githubusercontent.com/u/127268892?v=4\" width=\"100\"/\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003eWilliam Reilly\u003c/b\u003e\u003c/sub\u003e\n      \u003cbr /\u003e\n      \u003ca href=\"https://www.linkedin.com/in/william-reilly-338a5788/\"\u003e\u003cimg src=\"./src/assets/linkedin-favicon.png\" width=\"20\"/\u003e\u003c/a\u003e\n      \u003ca href=\"https://github.com/Wills-Git\"\u003e\u003cimg src=\"./src/assets/github-favicon.png\" width=\"20\"/\u003e\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## License\n\nThis project is licensed under the terms of the [MIT LICENSE](./LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foslabs-beta%2Fkubby-buddy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foslabs-beta%2Fkubby-buddy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foslabs-beta%2Fkubby-buddy/lists"}