{"id":32488095,"url":"https://github.com/cloud-barista/cb-tumblebug","last_synced_at":"2025-11-19T10:04:00.606Z","repository":{"id":35209473,"uuid":"210288294","full_name":"cloud-barista/cb-tumblebug","owner":"cloud-barista","description":"Cloud-Barista Multi-Cloud Infra Management Framework","archived":false,"fork":false,"pushed_at":"2025-10-24T08:01:46.000Z","size":37787,"stargazers_count":67,"open_issues_count":25,"forks_count":52,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-10-24T08:27:37.438Z","etag":null,"topics":["ai","benchmarking","cb-tumblebug","cloud","cloud-barista","cloud-computing","csp","go","hacktoberfest","iaas","kubernetes","llm","multi-cloud","multicloud","orchestration","vm"],"latest_commit_sha":null,"homepage":"","language":"Go","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/cloud-barista.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-09-23T07:12:42.000Z","updated_at":"2025-10-24T08:01:49.000Z","dependencies_parsed_at":"2024-02-01T05:25:16.436Z","dependency_job_id":"4adaaf6e-fc71-4578-83e6-e79af83f0cda","html_url":"https://github.com/cloud-barista/cb-tumblebug","commit_stats":{"total_commits":1935,"total_committers":47,"mean_commits":"41.170212765957444","dds":"0.39689922480620154","last_synced_commit":"63c79d99d72ae9fc9b5783af891ec28ce6d5cfa1"},"previous_names":[],"tags_count":158,"template":false,"template_full_name":null,"purl":"pkg:github/cloud-barista/cb-tumblebug","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloud-barista%2Fcb-tumblebug","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloud-barista%2Fcb-tumblebug/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloud-barista%2Fcb-tumblebug/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloud-barista%2Fcb-tumblebug/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cloud-barista","download_url":"https://codeload.github.com/cloud-barista/cb-tumblebug/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloud-barista%2Fcb-tumblebug/sbom","scorecard":{"id":292202,"data":{"date":"2025-08-11","repo":{"name":"github.com/cloud-barista/cb-tumblebug","commit":"c01adca01ca38711e9d0818005bb19b98de62e84"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.9,"checks":[{"name":"Code-Review","score":8,"reason":"Found 12/14 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 5 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'contents' permission set to 'read': .github/workflows/labeler.yml:8","Warn: no topLevel permission defined: .github/workflows/auto-merge.yml:1","Warn: no topLevel permission defined: .github/workflows/continuous-delivery.yaml:1","Warn: no topLevel permission defined: .github/workflows/continuous-integration.yaml:1","Warn: no topLevel permission defined: .github/workflows/labeler.yml:1","Warn: no topLevel permission defined: .github/workflows/make-swagger.yaml:1","Warn: no topLevel permission defined: .github/workflows/prow-commands.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Branch-Protection","score":6,"reason":"branch protection is not maximal on development and all release branches","details":["Info: 'allow deletion' disabled on branch 'main'","Info: 'force pushes' disabled on branch 'main'","Warn: 'branch protection settings apply to administrators' is disabled on branch 'main'","Warn: required approving review count is 1 on branch 'main'","Warn: codeowners review is not required on branch 'main'","Warn: no status checks found to merge onto branch 'main'","Info: PRs are required in order to make changes on branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/continuous-delivery.yaml:41"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Info: Possibly incomplete results: error parsing shell code: \"fi\" can only be used to end an if: src/testclient/scripts/4.securityGroup/create-securityGroup-ncp.sh:0","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/auto-merge.yml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/cloud-barista/cb-tumblebug/auto-merge.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/auto-merge.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/cloud-barista/cb-tumblebug/auto-merge.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/auto-merge.yml:55: update your workflow using https://app.stepsecurity.io/secureworkflow/cloud-barista/cb-tumblebug/auto-merge.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/continuous-delivery.yaml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/cloud-barista/cb-tumblebug/continuous-delivery.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/continuous-delivery.yaml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/cloud-barista/cb-tumblebug/continuous-delivery.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/continuous-delivery.yaml:87: update your workflow using https://app.stepsecurity.io/secureworkflow/cloud-barista/cb-tumblebug/continuous-delivery.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/continuous-delivery.yaml:93: update your workflow using https://app.stepsecurity.io/secureworkflow/cloud-barista/cb-tumblebug/continuous-delivery.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/continuous-delivery.yaml:96: update your workflow using https://app.stepsecurity.io/secureworkflow/cloud-barista/cb-tumblebug/continuous-delivery.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/continuous-delivery.yaml:104: update your workflow using https://app.stepsecurity.io/secureworkflow/cloud-barista/cb-tumblebug/continuous-delivery.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/continuous-delivery.yaml:111: update your workflow using https://app.stepsecurity.io/secureworkflow/cloud-barista/cb-tumblebug/continuous-delivery.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/continuous-delivery.yaml:119: update your workflow using https://app.stepsecurity.io/secureworkflow/cloud-barista/cb-tumblebug/continuous-delivery.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/continuous-integration.yaml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/cloud-barista/cb-tumblebug/continuous-integration.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/continuous-integration.yaml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/cloud-barista/cb-tumblebug/continuous-integration.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/continuous-integration.yaml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/cloud-barista/cb-tumblebug/continuous-integration.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/continuous-integration.yaml:62: update your workflow using https://app.stepsecurity.io/secureworkflow/cloud-barista/cb-tumblebug/continuous-integration.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/continuous-integration.yaml:68: update your workflow using https://app.stepsecurity.io/secureworkflow/cloud-barista/cb-tumblebug/continuous-integration.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/continuous-integration.yaml:73: update your workflow using https://app.stepsecurity.io/secureworkflow/cloud-barista/cb-tumblebug/continuous-integration.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/labeler.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/cloud-barista/cb-tumblebug/labeler.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/make-swagger.yaml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/cloud-barista/cb-tumblebug/make-swagger.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/make-swagger.yaml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/cloud-barista/cb-tumblebug/make-swagger.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/make-swagger.yaml:51: update your workflow using https://app.stepsecurity.io/secureworkflow/cloud-barista/cb-tumblebug/make-swagger.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/prow-commands.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/cloud-barista/cb-tumblebug/prow-commands.yml/main?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:6","Warn: containerImage not pinned by hash: Dockerfile:33","Warn: containerImage not pinned by hash: src/interface/mcp/Dockerfile:1: pin your Docker image by updating ghcr.io/astral-sh/uv:python3.12-bookworm-slim to ghcr.io/astral-sh/uv:python3.12-bookworm-slim@sha256:fb928b07f1e7bf6640406d7aced04672cca36a7e6a238ac58ae60d8faab3390e","Warn: pipCommand not pinned by hash: scripts/misc/update-cloudinfo.sh:56","Warn: pipCommand not pinned by hash: scripts/misc/update-cloudinfo.sh:57","Warn: downloadThenRun not pinned by hash: scripts/set-tb.sh:117","Warn: downloadThenRun not pinned by hash: scripts/set-tb.sh:142","Warn: goCommand not pinned by hash: scripts/setcbdf.sh:26","Warn: npmCommand not pinned by hash: scripts/setgame.sh:19","Warn: pipCommand not pinned by hash: scripts/usecases/ceph/3.setupDemoAppDepenancies.sh:29","Warn: pipCommand not pinned by hash: scripts/usecases/ceph/3.setupDemoAppDepenancies.sh:30","Warn: downloadThenRun not pinned by hash: scripts/usecases/jitsi/startServer.sh:39","Warn: downloadThenRun not pinned by hash: scripts/usecases/jitsi/startServer.sh:42","Warn: downloadThenRun not pinned by hash: scripts/usecases/llm/deployOllama.sh:9","Warn: downloadThenRun not pinned by hash: scripts/usecases/llm/deployOpenWebUI.sh:5","Warn: pipCommand not pinned by hash: scripts/usecases/llm/startServer.sh:71","Warn: pipCommand not pinned by hash: scripts/usecases/llm/startServer.sh:72","Warn: pipCommand not pinned by hash: scripts/usecases/llm/startServer.sh:73","Warn: pipCommand not pinned by hash: scripts/usecases/llm/startServer.sh:75","Warn: pipCommand not pinned by hash: scripts/usecases/llm/startServer.sh:76","Warn: pipCommand not pinned by hash: scripts/usecases/ray/ray-head-setup.sh:87","Warn: pipCommand not pinned by hash: scripts/usecases/ray/ray-worker-setup.sh:109","Warn: goCommand not pinned by hash: .github/workflows/make-swagger.yaml:31","Info:   0 out of  10 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  12 third-party GitHubAction dependencies pinned","Info:   0 out of   3 containerImage dependencies pinned","Info:   0 out of  11 pipCommand dependencies pinned","Info:   0 out of   6 downloadThenRun dependencies pinned","Info:   0 out of   2 goCommand dependencies pinned","Info:   0 out of   1 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 2 commits out of 28 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-17T18:32:58.685Z","repository_id":35209473,"created_at":"2025-08-17T18:32:58.685Z","updated_at":"2025-08-17T18:32:58.685Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281171465,"owners_count":26455534,"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","status":"online","status_checked_at":"2025-10-26T02:00:06.575Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["ai","benchmarking","cb-tumblebug","cloud","cloud-barista","cloud-computing","csp","go","hacktoberfest","iaas","kubernetes","llm","multi-cloud","multicloud","orchestration","vm"],"created_at":"2025-10-27T07:01:16.853Z","updated_at":"2025-11-19T10:04:00.599Z","avatar_url":"https://github.com/cloud-barista.png","language":"Go","readme":"# Cloud-Barista 👋\n# CB-Tumblebug (Multi-Cloud Infra Management)\n\n[![Go Report Card](https://goreportcard.com/badge/github.com/cloud-barista/cb-tumblebug)](https://goreportcard.com/report/github.com/cloud-barista/cb-tumblebug)\n[![Top Language](https://img.shields.io/github/languages/top/cloud-barista/cb-tumblebug)](https://github.com/cloud-barista/cb-tumblebug/search?l=go)\n[![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/cloud-barista/cb-tumblebug?label=go.mod)](https://github.com/cloud-barista/cb-tumblebug/blob/main/go.mod)\n[![Repo Size](https://img.shields.io/github/repo-size/cloud-barista/cb-tumblebug)](#)\n[![GoDoc](https://godoc.org/github.com/cloud-barista/cb-tumblebug?status.svg)](https://pkg.go.dev/github.com/cloud-barista/cb-tumblebug@main)\n[![Codebase](https://img.shields.io/badge/Visual-Codebase-blue)](https://mango-dune-07a8b7110.1.azurestaticapps.net/?repo=cloud-barista%2Fcb-tumblebug)\n[![Swagger API Doc](https://img.shields.io/badge/API%20Doc-Swagger-brightgreen)](https://cloud-barista.github.io/api/?url=https://raw.githubusercontent.com/cloud-barista/cb-tumblebug/refs/heads/main/src/interface/rest/docs/swagger.yaml)\n\n[![License](https://img.shields.io/github/license/cloud-barista/cb-tumblebug?color=blue)](https://github.com/cloud-barista/cb-tumblebug/blob/main/LICENSE)\n[![Release Version](https://img.shields.io/github/v/release/cloud-barista/cb-tumblebug?color=blue)](https://github.com/cloud-barista/cb-tumblebug/releases/latest)\n[![Pre Release Version](https://img.shields.io/github/v/release/cloud-barista/cb-tumblebug?color=brightgreen\u0026include_prereleases\u0026label=release%28dev%29)](https://github.com/cloud-barista/cb-tumblebug/releases)\n[![Build](https://img.shields.io/github/actions/workflow/status/cloud-barista/cb-tumblebug/continuous-integration.yaml)](https://github.com/cloud-barista/cb-tumblebug/actions/workflows/continuous-integration.yaml?query=workflow%3AContinuous-Integration-%28CI%29)\n[![Slack](https://img.shields.io/badge/Slack-SIG--TB-brightgreen)](https://cloud-barista.slack.com/archives/CJQ7575PU)\n\n\u003c!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --\u003e\n[![All Contributors](https://img.shields.io/badge/all_contributors-51-orange.svg?style=flat-square)](#contributors-)\n\u003c!-- ALL-CONTRIBUTORS-BADGE:END --\u003e\n\n## What is CB-Tumblebug? ✨\n\n**CB-Tumblebug (CB-TB)** is an advanced **multi-cloud infrastructure management system** that enables seamless provisioning, management, and orchestration of resources across multiple cloud service providers. Part of the Cloud-Barista project, CB-TB abstracts the complexity of multi-cloud environments into a unified, intuitive interface.\n\n### 🎯 Key Capabilities\n- **🌐 Multi-Cloud Orchestration**: Manage AWS, Azure, GCP, Alibaba Cloud, and more from a single platform\n- **⚡ Auto-provisioning**: Intelligent resource recommendations and automated deployment\n- **🔐 Secure Operations**: Encrypted credential management and hybrid encryption protocols\n- **🗺️ Visual Infrastructure Map**: Interactive GUI for infrastructure visualization and management  \n- **🤖 AI-Powered Management**: NEW! Control infrastructure using natural language via our MCP Server\n\n### 📚 Documentation \u0026 Resources\n- [📖 Overview](https://github.com/cloud-barista/cb-tumblebug/wiki/CB‐Tumblebug-Overview) | [✨ Features](https://github.com/cloud-barista/cb-tumblebug/wiki/CB‐Tumblebug-Features) | [🏗️ Architecture](https://github.com/cloud-barista/cb-tumblebug/wiki/CB‐Tumblebug-Architecture)\n- [☁️ Supported Cloud Providers \u0026 Resources](https://docs.google.com/spreadsheets/d/1idBoaTxEMzuVACKUIMIE9OY1rPO-7yZ0y7Rs1dBG0og/edit?usp=sharing)\n\n  ![Multi-Cloud Support Matrix](https://github.com/user-attachments/assets/35efa629-e864-4092-abb0-b455df4fd3c4)\n  \n  \u003e 📌 **Note**: Reference only - functionality not guaranteed. Regular updates are made.  \n  \u003e Kubernetes support is currently WIP with limited features available.\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003e📋 Development Status \u0026 Contributing Notes\u003c/summary\u003e\n\n### 🚧 Ongoing Development \nCB-TB has not reached version 1.0 yet. We welcome any new suggestions, issues, opinions, and contributors!\nPlease note that the functionalities of Cloud-Barista are not yet stable or secure.\nBe cautious if you plan to use the current release in a production environment.\nIf you encounter any difficulties using Cloud-Barista,\nplease let us know by opening an issue or joining the Cloud-Barista Slack.\n\n### 🌍 Localization \u0026 Globalization\nAs an open-source project initiated by Korean members,\nwe aim to encourage participation from Korean contributors during the initial stages of this project.\nTherefore, the CB-TB repository will accept the use of the Korean language in its early stages.\nHowever, we hope this project will thrive regardless of contributors' countries in the long run.\nTo facilitate this, the maintainers recommend using English at least for\nthe titles of Issues, Pull Requests, and Commits, while accommodating local languages in the contents.\n\n\u003c/details\u003e\n\n### 🌟 Featured Use Cases\n\n**🤖 NEW: AI-Powered Multi-Cloud Management**\n- Control CB-Tumblebug through AI assistants like Claude and VS Code\n- Natural language interface for infrastructure provisioning and management using MCP (Model Context Protocol)\n- Streamable HTTP transport for modern MCP compatibility\n- [📖 MCP Server Guide](src/interface/mcp/README.md) | [🚀 Quick Start](src/interface/mcp/README.md#-quick-start-with-docker-compose-recommended)\n\n**🎮 GPU-Powered Multi-Cloud LLM Deployment**\n[![Multi-Cloud LLMs in parallel](https://github.com/cloud-barista/cb-tumblebug/assets/5966944/e15feb67-ba02-4066-af62-d9f8e8330a63)](https://www.youtube.com/watch?v=SD9ZoT_OZpQ)\n- Deploy GPU instances across multiple clouds for AI/ML workloads\n- [🧠 LLM Scripts \u0026 Examples](https://github.com/cloud-barista/cb-tumblebug/tree/main/scripts/usecases/llm)\n\n\n---\n\n## Table of Contents\n\n1. [⚡ Quick Start](#quick-start-)\n2. [🔧 Prerequisites](#prerequisites-)\n3. [🚀 Installation \u0026 Setup](#installation--setup-)\n4. [🌟 How to Use](#how-to-use-cb-tb-features-)\n5. [🛠️ Development](#development-%EF%B8%8F)\n6. [🤝 Contributing](#how-to-contribute-)\n\n---\n\n## Quick Start ⚡\n\nGet CB-Tumblebug running in under 5 minutes:\n\n```bash\n# 1. Automated setup (recommended for new users)\ncurl -sSL https://raw.githubusercontent.com/cloud-barista/cb-tumblebug/main/scripts/set-tb.sh | bash\n\n# 2. Start all services\ncd ~/go/src/github.com/cloud-barista/cb-tumblebug\nmake up\n\n# 3. Configure credentials (see detailed setup below)\n./init/genCredential.sh\n# Edit ~/.cloud-barista/credentials.yaml with your cloud credentials\n./init/encCredential.sh\nmake init\n\n# 4. Access services\n# - API: http://localhost:1323/tumblebug/api\n# - MapUI: http://localhost:1324\n# - MCP Server: http://localhost:8000/mcp (if enabled)\n```\n\n\u003e 💡 **New to CB-Tumblebug?** Follow the [detailed setup guide](#installation--setup-) below for comprehensive instructions.\n\n---\n\n## Prerequisites 🔧\n\n### System Requirements\n\n| Component | Minimum Specification | Recommended |\n|-----------|----------------------|-------------|\n| **OS** | Linux (Ubuntu 22.04+) | Ubuntu 22.04 LTS |\n| **CPU** | 4 cores | 8+ cores |\n| **Memory** | 6 GiB | 16+ GiB |\n| **Storage** | 20 GiB free space | 50+ GiB SSD |\n| **Example** | AWS `c5a.xlarge` | AWS `c5a.2xlarge` |\n\n\u003e ⚠️ **Performance Note**: Lower specifications may cause initialization failures or performance degradation.\n\n### Required Software\n\n- **Docker \u0026 Docker Compose** (latest stable)\n- **Go 1.25.0+** (for building from source)\n- **Git** (for cloning repository)\n\n### Dependencies \u0026 Security\n\n- 📦 [View Dependencies](https://github.com/cloud-barista/cb-tumblebug/network/dependencies)\n- 🛡️ [Software Bill of Materials (SBOM)](https://github.com/cloud-barista/cb-tumblebug/dependency-graph/sbom)\n\n\n---\n\n## Installation \u0026 Setup 🚀\n\n### Option 1: Automated Setup (Recommended)\n\nFor new users on clean Linux systems:\n\n- https://github.com/cloud-barista/cb-tumblebug/blob/main/scripts/set-tb.sh\n- \n```bash\n# Download and run automated setup script\ncurl -sSL https://raw.githubusercontent.com/cloud-barista/cb-tumblebug/main/scripts/set-tb.sh | bash\n```\n\n\u003e ℹ️ After the script finishes, you may need to **log out and back in** to activate Docker permissions and aliases.\n\u003e If you'd prefer to install dependencies and clone the repository manually, follow the steps below. 👇\n\n\n### (1) Download CB-Tumblebug\n\n- Clone the CB-Tumblebug repository:\n\n  ```bash\n  git clone https://github.com/cloud-barista/cb-tumblebug.git $HOME/go/src/github.com/cloud-barista/cb-tumblebug\n  cd ~/go/src/github.com/cloud-barista/cb-tumblebug\n  ```\n\n  Optionally, you can register aliases for the CB-Tumblebug directory to simplify navigation:\n\n  ```bash\n  echo \"alias cdtb='cd $HOME/go/src/github.com/cloud-barista/cb-tumblebug'\" \u003e\u003e ~/.bashrc\n  echo \"alias cdtbsrc='cd $HOME/go/src/github.com/cloud-barista/cb-tumblebug/src'\" \u003e\u003e ~/.bashrc\n  echo \"alias cdtbtest='cd $HOME/go/src/github.com/cloud-barista/cb-tumblebug/src/testclient/scripts'\" \u003e\u003e ~/.bashrc\n  source ~/.bashrc\n  ```\n\n---\n\n### (2) Run CB-TB and All Related Components\n\n- Check Docker Compose Installation:\n  \n  Ensure that Docker Engine and Docker Compose are installed on your system.\n  If not, you can use the following script to install them (note: this script is not intended for production environments):\n\n  ```bash\n  # download and install docker with docker compose\n  curl -sSL get.docker.com | sh\n  \n  # optional: add user to docker groupd\n  sudo groupadd docker\n  sudo usermod -aG docker ${USER}\n  newgrp docker\n\n  # test the docker works\n  docker run hello-world\n  ```\n    \n- Start All Components Using Docker Compose:\n\n  To run all components, use the following command:\n  \n  ```bash\n  cd ~/go/src/github.com/cloud-barista/cb-tumblebug\n  docker compose up\n  ```\n  \n  This command will start all components as defined in the preconfigured [docker-compose.yaml](https://github.com/cloud-barista/cb-tumblebug/blob/main/docker-compose.yaml) file. For configuration customization, please refer to the [guide](https://github.com/cloud-barista/cb-tumblebug/discussions/1669).\n\n  The following components will be started:\n  - ETCD: CB-Tumblebug KeyValue DB\n  - CB-Spider: a Cloud API controller\n  - CB-MapUI: a simple Map-based GUI web server\n  - CB-Tumblebug: the system with API server\n  - CB-Tumblebug MCP Server: AI assistant interface (if enabled)\n  - PostgreSQL: Specs and Images storage\n  - Traefik: Reverse proxy for secure access\n\n  **Container Architecture Overview:**\n  ```mermaid\n  graph TB\n      subgraph \"External Access\"\n          User[👤 User]\n          AI[🤖 AI Assistant\u003cbr/\u003eClaude/VS Code]\n      end\n      \n      subgraph \"Docker Compose Environment\"\n          subgraph \"Frontend \u0026 Interfaces\"\n              UI[CB-MapUI\u003cbr/\u003e:1324]\n              MCP[TB-MCP Server\u003cbr/\u003e:8000]\n              Proxy[Traefik Proxy\u003cbr/\u003e:80/:443]\n          end\n          \n          subgraph \"Backend Services\"\n              TB[CB-Tumblebug\u003cbr/\u003e:1323\u003cbr/\u003eMulti-Cloud Management]\n              Spider[CB-Spider\u003cbr/\u003e:1024\u003cbr/\u003eCloud API Abstraction]\n              ETCD[ETCD\u003cbr/\u003e:2379\u003cbr/\u003eMetadata Store]\n              PG[PostgreSQL\u003cbr/\u003e:5432\u003cbr/\u003eSpecs/Images DB]\n          end\n      end\n      \n      subgraph \"Cloud Providers\"\n          AWS[AWS]\n          Azure[Azure] \n          GCP[GCP]\n          Others[Others...]\n      end\n      \n      %% User connections\n      User --\u003e|HTTP/HTTPS| Proxy\n      User --\u003e|HTTP| UI\n      User --\u003e|HTTP| TB\n      AI --\u003e|MCP HTTP| MCP\n      \n      %% Proxy routing\n      Proxy --\u003e|Route| UI\n      \n      %% Internal service connections\n      UI -.-\u003e|API calls| TB\n      MCP --\u003e|REST API| TB\n      TB --\u003e|REST API| Spider\n      TB --\u003e|gRPC| ETCD\n      TB --\u003e|SQL| PG\n      \n      %% Cloud connections\n      Spider --\u003e|Cloud APIs| AWS\n      Spider --\u003e|Cloud APIs| Azure\n      Spider --\u003e|Cloud APIs| GCP\n      Spider --\u003e|Cloud APIs| Others\n      \n      %% Styling\n      classDef frontend fill:#e3f2fd,stroke:#1976d2\n      classDef backend fill:#f3e5f5,stroke:#7b1fa2\n      classDef storage fill:#e8f5e8,stroke:#388e3c\n      classDef cloud fill:#fff3e0,stroke:#f57c00\n      \n      class UI,MCP,Proxy frontend\n      class TB,Spider,ETCD,PG backend\n      class AWS,Azure,GCP,Others cloud\n  ```\n\n  ![image](https://github.com/user-attachments/assets/4466b6ff-6566-4ee0-ae60-d57e3d152821)\n  \n  After running the command, you should see output similar to the following:\n  ![image](https://github.com/user-attachments/assets/1861edfd-411f-4c43-ab62-fa3658b8a1e9)\n\n  **Service Endpoints:**\n  - **CB-Tumblebug API**: http://localhost:1323/tumblebug/api\n  - **CB-MapUI**: http://localhost:1324 (direct) or https://cb-mapui.localhost (via Traefik with SSL)\n  - **MCP Server**: http://localhost:8000/mcp (if enabled)\n  - **Traefik Dashboard**: http://localhost:8080 (reverse proxy monitoring)\n\n  **Note**: Before using CB-Tumblebug, you need to initialize it.\n\n---\n  \n### (3) Initialize CB-Tumblebug to configure Multi-Cloud info\n\nTo provisioning multi-cloud infrastructures with CB-TB, it is necessary to register the connection information (credentials) for clouds, as well as commonly used images and specifications.\n\n- Create `credentials.yaml` file and input your cloud credentials\n  - Overview\n    - `credentials.yaml` is a file that includes multiple credentials to use API of Clouds supported by CB-TB (AWS, GCP, AZURE, ALIBABA, etc.)\n    - It should be located in the `~/.cloud-barista/` directory and securely managed.\n    - Refer to the [`template.credentials.yaml`](https://github.com/cloud-barista/cb-tumblebug/blob/main/init/template.credentials.yaml) for the template\n  - Create `credentials.yaml` the file\n\n    Automatically generate the `credentials.yaml` file in the `~/.cloud-barista/` directory using the CB-TB script\n\n    ```bash\n    cd ~/go/src/github.com/cloud-barista/cb-tumblebug\n    ./init/genCredential.sh\n    ```\n\n  - Input credential data\n\n    Put credential data to `~/.cloud-barista/credentials.yaml` ([Reference: How to obtain a credential for each CSP](https://github.com/cloud-barista/cb-tumblebug/wiki/How-to-get-public-cloud-credentials))\n\n    ```example\n    ### Cloud credentials for credential holders (default: admin)\n    credentialholder:\n      admin:\n        alibaba:\n          # ClientId(ClientId): client ID of the EIAM application\n          # Example: app_mkv7rgt4d7i4u7zqtzev2mxxxx\n          ClientId:\n          # ClientSecret(ClientSecret): client secret of the EIAM application\n          # Example: CSEHDcHcrUKHw1CuxkJEHPveWRXBGqVqRsxxxx\n          ClientSecret:\n        aws:\n          # ClientId(aws_access_key_id)\n          # ex: AKIASSSSSSSSSSS56DJH\n          ClientId:\n          # ClientSecret(aws_secret_access_key)\n          # ex: jrcy9y0Psejjfeosifj3/yxYcgadklwihjdljMIQ0\n          ClientSecret:\n        ...\n    ```\n- Encrypt `credentials.yaml` into `credentials.yaml.enc`\n\n  To protect sensitive information, `credentials.yaml` is not used directly. Instead, it must be encrypted using `encCredential.sh`. The encrypted file `credentials.yaml.enc` is then used by `init.py`. This approach ensures that sensitive credentials are not stored in plain text.\n\n  - Encrypting Credentials\n    ```bash\n    init/encCredential.sh\n    ``` \n    When executing the script, you have two options: 1) enter your password or 2) let the system generate a random passkey.\n\n    Option 1: Entering your password:\n\n    ![Image](https://github.com/user-attachments/assets/8f051ce8-9282-4e6d-a8ae-af5c831622c7)\n    \n    Option 2: Letting the system generate a random passkey, which MUST be securely stored in a safe location:\n\n    ![Image](https://github.com/user-attachments/assets/807511ee-05d9-481e-a191-d1aad2e9aeb2)\n\n  If you need to update your credentials, decrypt the encrypted file using `decCredential.sh`, make the necessary changes to `credentials.yaml`, and then re-encrypt it.\n\n  - Decrypting Credentials\n    ```bash\n    init/decCredential.sh\n    ```\n    Option 1: If encrypted using option 1, please use the same password to decrypt the file:\n\n    ![Image](https://github.com/user-attachments/assets/600921fb-cdff-4313-ae4d-266ddd31809b)\n    \n    Option 2: If encrypted using option 2, enter the passkey to decrypt the file:\n\n    ![Image](https://github.com/user-attachments/assets/2bb029a4-8dd9-4e1a-8cad-af70ca72e9fd)\n\n\n- (INIT) Register all multi-cloud connection information and common resources\n\n  - How to register\n\n    Refer to [README.md for init.py](https://github.com/cloud-barista/cb-tumblebug/blob/main/init/README.md), and execute the [`init.py`](https://github.com/cloud-barista/cb-tumblebug/blob/main/init/init.py) script by the [`init.sh`](https://github.com/cloud-barista/cb-tumblebug/blob/main/init/init.sh). (enter 'y' for confirmation prompts)\n    `init.sh --help` will show the available options.\n\n    You can also simply use the `make init` command as follows:\n\n    ```bash\n    cd ~/go/src/github.com/cloud-barista/cb-tumblebug\n    make init\n    ```\n\n    - The credentials in `~/.cloud-barista/credentials.yaml.enc` (encrypted file from the `credentials.yaml`) will be automatically registered (all CSP and region information recorded in [`cloudinfo.yaml`](https://github.com/cloud-barista/cb-tumblebug/blob/main/assets/cloudinfo.yaml) will be automatically registered in the system)\n      - Note: You can check the latest regions and zones of CSP using [`update-cloudinfo.py`](https://github.com/cloud-barista/cb-tumblebug/blob/main/scripts/misc/update-cloudinfo.py) and review the file for updates. (contributions to updates are welcome)\n    - Common images and specifications recorded in the [`cloudimage.csv`](https://github.com/cloud-barista/cb-tumblebug/blob/main/assets/cloudimage.csv) and [`cloudspec.csv`](https://github.com/cloud-barista/cb-tumblebug/blob/main/assets/cloudspec.csv) files in the [`assets`](https://github.com/cloud-barista/cb-tumblebug/tree/main/assets) directory will be automatically registered.\n   \n    - **`init.py` will apply the hybrid encryption for secure transmission of credentials**\n      1. Retrieve RSA Public Key: Use the `/credential/publicKey` API to get the public key.\n      2. Encrypt Credentials: Encrypt credentials with a randomly generated `AES` key, then encrypt the `AES` key with the `RSA public key`.\n      3. Transmit Encrypted Data: Send `the encrypted credentials` and `AES key` to the server. The server decrypts the AES key and uses it to decrypt the credentials.\n\n      This method ensures your credentials are securely transmitted and protected during registration. See [init.py](https://github.com/cloud-barista/cb-tumblebug/blob/main/init/init.py#L150) for a Python implementation.\n      In detail, check out [Secure Credential Registration Guide (How to use the credential APIs)](https://github.com/cloud-barista/cb-tumblebug/discussions/1773)\n\n---\n\n### (4) Shutting down and Version Upgrade\n\n- Shutting down CB-TB and related components\n\n  - Stop all containers by `ctrl` + `c` or type the command `docker compose stop` / `docker compose down` / `make down`\n    (When a shutdown event occurs to CB-TB, the system will be shutting down gracefully: API requests that can be processed within 10 seconds will be completed)\n    \n    ![image](https://github.com/user-attachments/assets/009e5df6-93cb-4ff7-93c0-62458341c78b)\n\n  - In case of cleanup is needed due to internal system errors\n    - Check and delete resources created through CB-TB\n    - Delete CB-TB \u0026 CB-Spider metadata using the provided script\n      ```bash\n      cd ~/go/src/github.com/cloud-barista/cb-tumblebug\n      make clean-db\n      ```\n\n- Upgrading the CB-TB \u0026 CB-Spider versions\n\n  The following cleanup steps are unnecessary if you clearly understand the impact of the upgrade\n\n  - Check and delete resources created through CB-TB\n  - Delete CB-TB \u0026 CB-Spider metadata\n    ```bash\n    cd ~/go/src/github.com/cloud-barista/cb-tumblebug\n    make clean-db\n    ```\n  - Restart with the upgraded version\n\n\n---\n\n## How to Use CB-TB Features 🌟\n\n1. [🤖 Using CB-TB MCP Server (AI Assistant Interface)](#using-cb-tb-mcp-server) (NEW!)\n2. [Using CB-TB MapUI](#using-cb-tb-mapui) (recommended)\n3. [Using CB-TB REST API](#using-cb-tb-rest-api) (recommended)\n\n### Using CB-TB MCP Server\n\n**🚀 NEW: Control CB-Tumblebug with AI assistants like Claude!**\n\nThe Model Context Protocol (MCP) Server enables natural language interaction with CB-Tumblebug through AI assistants:\n\n- **🧠 AI-Powered Infrastructure Management**: Deploy and manage multi-cloud resources using natural language commands\n- **🔗 Seamless Integration**: Works with Claude Desktop (via proxy), VS Code (direct), and other MCP-compatible clients  \n- **📡 Modern Protocol**: Uses Streamable HTTP transport (current MCP standard)\n- **⚡ Quick Start**: Enable with `make up` and uncomment MCP service in `docker-compose.yaml`\n\n```bash\n# Enable MCP Server (Proof of Concept)\n# 1. Uncomment cb-tumblebug-mcp-server in docker-compose.yaml\n# 2. Launch with Docker Compose\nmake up\n\n# Access MCP server at http://localhost:8000/mcp\n```\n\n**📖 [Complete MCP Server Guide →](src/interface/mcp/README.md)**\n\n⚠️ **Note**: MCP Server is a Proof of Concept. Review code thoroughly before production use.\n\n---\n\n### Using CB-TB MapUI 🗺️\n\n**Visual Infrastructure Management with Interactive Maps**\n\nCB-MapUI provides an intuitive, map-based interface for managing multi-cloud infrastructure:\n\n- **🗺️ Geographic Visualization**: See your infrastructure deployed across the globe\n- **📊 Real-time Monitoring**: Monitor resource status and performance  \n- **🎮 Interactive Control**: Create, manage, and control resources visually\n- **🌐 Multi-Cloud View**: Unified view across all cloud providers\n\n```bash\n# Access CB-MapUI (auto-started with Docker Compose)\nopen http://localhost:1324\n\n# Or run standalone MapUI container\n./scripts/runMapUI.sh\n```\n\n![CB-MapUI Interface](https://github.com/cloud-barista/cb-mapui/assets/5966944/2423fbcd-0fdb-4511-85e2-488ba15ae8c0)\n\n**Features:**\n- Drag-and-drop resource creation\n- Real-time infrastructure mapping\n- Cross-cloud resource relationships\n- Performance metrics overlay\n\n\u003e 📖 **Learn More**: [CB-MapUI Repository](https://github.com/cloud-barista/cb-mapui)\n\n---\n\n### Using CB-TB REST API 🔌\n\n**Programmatic Multi-Cloud Infrastructure Management**\n\nCB-Tumblebug provides a comprehensive REST API for automated infrastructure management:\n\n**🌐 API Dashboard \u0026 Documentation**\n- **Interactive API Explorer**: [http://localhost:1323/tumblebug/api](http://localhost:1323/tumblebug/api)\n- **Live Documentation**: [![Swagger API Doc](https://img.shields.io/badge/API%20Doc-Swagger-brightgreen)](https://cloud-barista.github.io/api/?url=https://raw.githubusercontent.com/cloud-barista/cb-tumblebug/main/src/interface/rest/docs/swagger.yaml)\n\n**🔐 Authentication**\nCB-TB uses Basic Authentication (development phase - not production-ready):\n```bash\n# Include base64 encoded credentials in request headers\nAuthorization: Basic \u003cbase64(username:password)\u003e\n```\n\n**🚀 Quick Infrastructure Creation**\nFollowing the [Quick MCI Creation Guide](https://github.com/cloud-barista/cb-tumblebug/discussions/1570):\n\n```bash\n# 1. Create VM specification\ncurl -X POST \"http://localhost:1323/tumblebug/ns/default/resources/spec\" \\\n  -H \"Authorization: Basic \u003ccredentials\u003e\" \\\n  -d '{\"name\": \"web-spec\", \"connectionName\": \"aws-ap-northeast-2\"}'\n\n# 2. Create VM image  \ncurl -X POST \"http://localhost:1323/tumblebug/ns/default/resources/image\" \\\n  -H \"Authorization: Basic \u003ccredentials\u003e\" \\\n  -d '{\"name\": \"ubuntu-image\", \"connectionName\": \"aws-ap-northeast-2\"}'\n\n# 3. Create Multi-Cloud Infrastructure\ncurl -X POST \"http://localhost:1323/tumblebug/ns/default/mci\" \\\n  -H \"Authorization: Basic \u003ccredentials\u003e\" \\\n  -d @mci-config.json\n```\n\n**🛠️ Core API Categories**\n- **Infrastructure Resources**: VM specs, images, networks, security groups\n- **Multi-Cloud Infrastructure (MCI)**: Provision and manage distributed infrastructure\n- **Monitoring \u0026 Control**: Performance metrics, scaling, lifecycle management\n- **Credentials \u0026 Connections**: Secure cloud provider configuration\n    - [Create access key object](https://cloud-barista.github.io/api/?url=https://raw.githubusercontent.com/cloud-barista/cb-tumblebug/main/src/interface/rest/docs/swagger.yaml#/%5BInfra%20resource%5D%20Resource%20Access%20key%20management/post_ns__nsId__resources_sshKey)\n  - Create, view, control, execute remote commands, shut down, and delete MCI using the MCI(multi-cloud infrastructure service) management APIs\n    - [Create MCI](https://cloud-barista.github.io/api/?url=https://raw.githubusercontent.com/cloud-barista/cb-tumblebug/main/src/interface/rest/docs/swagger.yaml#/%5BInfra%20service%5D%20MCI%20Provisioning%20management/post_ns__nsId__mci)\n    - [MCI remote command](https://cloud-barista.github.io/api/?url=https://raw.githubusercontent.com/cloud-barista/cb-tumblebug/main/src/interface/rest/docs/swagger.yaml#/%5BInfra%20service%5D%20MCI%20Remote%20command/post_ns__nsId__cmd_mci__mciId_)\n    - [View and control MCI](https://cloud-barista.github.io/api/?url=https://raw.githubusercontent.com/cloud-barista/cb-tumblebug/main/src/interface/rest/docs/swagger.yaml#/%5BInfra%20service%5D%20MCI%20Provisioning%20management/get_ns__nsId__mci__mciId_)\n    - [Terminate and Delete MCI](https://cloud-barista.github.io/api/?url=https://raw.githubusercontent.com/cloud-barista/cb-tumblebug/main/src/interface/rest/docs/swagger.yaml#/%5BInfra%20service%5D%20MCI%20Provisioning%20management/delete_ns__nsId__mci__mciId_)\n  - CB-TB optimal and dynamic provisioning\n    - [CB-TB optimal and dynamic provisioning](https://github.com/cloud-barista/cb-tumblebug/wiki/Dynamic-and-optimal-mci-provisioning-guide)\n\n---\n\n### Multi-Cloud Infrastructure Use Cases\n\n#### Deploying an MCI Xonotic (3D FPS) Game Server\n\n- [Deploy Xonotic game servers on MCI](https://github.com/cloud-barista/cb-tumblebug/wiki/Deploy-Xonotic-game-sever-in-a-Cloud-via-CB-Tumblebug)\n\n#### Distributed Deployment of MCI Weave Scope Cluster Monitoring\n\n- [Install Weave Scope cluster on MCI](https://github.com/cloud-barista/cb-tumblebug/wiki/MCI-WeaveScope-deployment)\n\n#### Deploying MCI Jitsi Video Conferencing\n\n- [Install Jitsi video conferencing on MCI](https://github.com/cloud-barista/cb-tumblebug/wiki/MCI-Jitsi-deployment)\n\n#### Automatic Configuration of MCI Ansible Execution Environment\n\n- [Automatically configure Ansible execution environment on MCI](https://github.com/cloud-barista/cb-tumblebug/wiki/MCI-Ansible-deployment)\n\n\n---\n\n## How to Build 🛠️\n\n### (1) Setup Prerequisites\n\n- Setup required tools\n\n  - Install: git, gcc, make\n    ```bash\n    sudo apt update\n    sudo apt install make gcc git\n    ```\n  - Install: Golang\n\n    - Check https://golang.org/dl/ and setup Go\n\n      - Download\n        ```bash\n        wget https://go.dev/dl/go1.25.0.linux-amd64.tar.gz;\n        sudo rm -rf /usr/local/go \u0026\u0026 sudo tar -C /usr/local -xzf go1.25.0.linux-amd64.tar.gz\n        ```\n      - Setup environment\n\n        ```bash\n        echo 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' \u003e\u003e ~/.bashrc\n        echo 'export GOPATH=$HOME/go' \u003e\u003e ~/.bashrc\n        ```\n\n        ```bash\n        source ~/.bashrc\n        echo $GOPATH\n        go env\n        go version\n        ```\n\n---\n\n### (2) Build and Run CB-Tumblebug\n\n#### (2-1) Option 1: Run CB-Tumblebug with Docker Compose (Recommended)\n\n- Run Docker Compose with the build option\n\n  To build the current CB-Tumblebug source code into a container image and run it along with the other containers, use the following command:\n  \n  ```bash\n  cd ~/go/src/github.com/cloud-barista/cb-tumblebug\n  sudo DOCKER_BUILDKIT=1 docker compose up --build\n  ```\n\n  This command will automatically build the CB-Tumblebug from the local source code\n  and start it within a Docker container, along with any other necessary services as defined in the `docker-compose.yml` file. `DOCKER_BUILDKIT=1` setting is used to speed up the build by using the go build cache technique.\n\n#### (2-2) Option 2: Run CB-Tumblebug from the Makefile\n\n- Build the Golang source code using the Makefile\n\n  ```bash\n  cd ~/go/src/github.com/cloud-barista/cb-tumblebug/src\n  make\n  ```\n\n  All dependencies will be downloaded automatically by Go.\n\n  The initial build will take some time, but subsequent builds will be faster by the Go build cache.\n\n  **Note** To update the Swagger API documentation, run `make swag`\n\n  - API documentation file will be generated at `cb-tumblebug/src/interface/rest/docs/swagger.yaml`\n  - API documentation can be viewed in a web browser at http://localhost:1323/tumblebug/api (provided when CB-TB is running)\n  - Detailed information on [how to update the API](https://github.com/cloud-barista/cb-tumblebug/wiki/API-Document-Update)\n\n- Set environment variables required to run CB-TB (in another tab)\n\n  - Check and configure the contents of `cb-tumblebug/conf/setup.env` (CB-TB environment variables, modify as needed)\n    - Apply the environment variables to the system\n      ```bash\n      cd ~/go/src/github.com/cloud-barista/cb-tumblebug\n      source conf/setup.env\n      ```\n    - (Optional) Automatically set the TB_SELF_ENDPOINT environment variable (an externally accessible address) using a script if needed\n      - This is necessary if you want to access and control the Swagger API Dashboard from outside when CB-TB is running\n      ```bash\n      cd ~/go/src/github.com/cloud-barista/cb-tumblebug\n      source ./scripts/setPublicIP.sh\n      ```\n\n- Execute the built cb-tumblebug binary by using `make run`\n  ```bash\n  cd ~/go/src/github.com/cloud-barista/cb-tumblebug/src\n  make run\n  ```\n\n\n---\n\n## How to Contribute 🙏\n\nCB-TB welcomes improvements from both new and experienced contributors!\n\nCheck out [CONTRIBUTING](https://github.com/cloud-barista/cb-tumblebug/blob/main/CONTRIBUTING.md).\n\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://seokho-son.github.io/\"\u003e\u003cimg src=\"https://avatars3.githubusercontent.com/u/5966944?v=4?s=100\" width=\"100px;\" alt=\"Seokho Son\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eSeokho Son\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#maintenance-seokho-son\" title=\"Maintenance\"\u003e🚧\u003c/a\u003e \u003ca href=\"#ideas-seokho-son\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=seokho-son\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/pulls?q=is%3Apr+reviewed-by%3Aseokho-son\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://jihoon-seo.github.io\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/46767780?v=4?s=100\" width=\"100px;\" alt=\"Jihoon Seo\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJihoon Seo\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#maintenance-jihoon-seo\" title=\"Maintenance\"\u003e🚧\u003c/a\u003e \u003ca href=\"#ideas-jihoon-seo\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=jihoon-seo\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/pulls?q=is%3Apr+reviewed-by%3Ajihoon-seo\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/yunkon-kim\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/7975459?v=4?s=100\" width=\"100px;\" alt=\"Yunkon (Alvin) Kim \"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eYunkon (Alvin) Kim \u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#ideas-yunkon-kim\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=yunkon-kim\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/pulls?q=is%3Apr+reviewed-by%3Ayunkon-kim\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e \u003ca href=\"#maintenance-yunkon-kim\" title=\"Maintenance\"\u003e🚧\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/jmleefree\"\u003e\u003cimg src=\"https://avatars3.githubusercontent.com/u/64775292?v=4?s=100\" width=\"100px;\" alt=\"jmleefree\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ejmleefree\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=jmleefree\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/pulls?q=is%3Apr+reviewed-by%3Ajmleefree\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://www.powerkim.co.kr\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/46367962?v=4?s=100\" width=\"100px;\" alt=\"ByoungSeob Kim\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eByoungSeob Kim\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#ideas-powerkimhub\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/sykim-etri\"\u003e\u003cimg src=\"https://avatars3.githubusercontent.com/u/25163268?v=4?s=100\" width=\"100px;\" alt=\"Sooyoung Kim\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eSooyoung Kim\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/issues?q=author%3Asykim-etri\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"#ideas-sykim-etri\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/dongjae\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/5770239?v=4?s=100\" width=\"100px;\" alt=\"KANG DONG JAE\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eKANG DONG JAE\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#ideas-dongjae\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://www.etri.re.kr\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/5266479?v=4?s=100\" width=\"100px;\" alt=\"Youngwoo-Jung\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eYoungwoo-Jung\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#ideas-Youngwoo-Jung\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/innodreamer\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/51111668?v=4?s=100\" width=\"100px;\" alt=\"Sean Oh\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eSean Oh\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#ideas-innodreamer\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/MZC-CSC\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/78469943?v=4?s=100\" width=\"100px;\" alt=\"MZC-CSC\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMZC-CSC\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/issues?q=author%3AMZC-CSC\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"#ideas-MZC-CSC\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/itnpeople\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/35829386?v=4?s=100\" width=\"100px;\" alt=\"Eunsang\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eEunsang\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#userTesting-itnpeople\" title=\"User Testing\"\u003e📓\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/hyokyungk\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/51115778?v=4?s=100\" width=\"100px;\" alt=\"hyokyungk\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ehyokyungk\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#userTesting-hyokyungk\" title=\"User Testing\"\u003e📓\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/pjini\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/64886639?v=4?s=100\" width=\"100px;\" alt=\"pjini\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003epjini\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#userTesting-pjini\" title=\"User Testing\"\u003e📓\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/vlatte\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/21170063?v=4?s=100\" width=\"100px;\" alt=\"sunmi\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003esunmi\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#userTesting-vlatte\" title=\"User Testing\"\u003e📓\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/limsg1234\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/53066410?v=4?s=100\" width=\"100px;\" alt=\"sglim\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003esglim\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=limsg1234\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=limsg1234\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/jangh-lee\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/72970232?v=4?s=100\" width=\"100px;\" alt=\"jangh-lee\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ejangh-lee\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=jangh-lee\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=jangh-lee\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/leedohun\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/33706689?v=4?s=100\" width=\"100px;\" alt=\"이도훈\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003e이도훈\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=leedohun\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=leedohun\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://velog.io/@skynet\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/26251856?v=4?s=100\" width=\"100px;\" alt=\"Park Beomsu\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ePark Beomsu\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=computerphilosopher\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/HassanAlsamahi\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/42076287?v=4?s=100\" width=\"100px;\" alt=\"Hassan Alsamahi\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eHassan Alsamahi\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=HassanAlsamahi\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/atg0831\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/44899448?v=4?s=100\" width=\"100px;\" alt=\"Taegeon An\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eTaegeon An\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=atg0831\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://ihp001.tistory.com\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/47745785?v=4?s=100\" width=\"100px;\" alt=\"INHYO\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eINHYO\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=PARKINHYO\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/Modney\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/46340193?v=4?s=100\" width=\"100px;\" alt=\"Modney\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eModney\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=Modney\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=Modney\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/ChobobDev\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/32432141?v=4?s=100\" width=\"100px;\" alt=\"Seongbin Bernie Cho\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eSeongbin Bernie Cho\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=ChobobDev\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=ChobobDev\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/gbnam\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/17192707?v=4?s=100\" width=\"100px;\" alt=\"Gibaek Nam\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eGibaek Nam\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=gbnam\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/betelgeuse-7\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/71967052?v=4?s=100\" width=\"100px;\" alt=\"Abidin Durdu\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAbidin Durdu\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=betelgeuse-7\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://sysgongbu.tistory.com/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/46469385?v=4?s=100\" width=\"100px;\" alt=\"soyeon Park\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003esoyeon Park\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=sypark9646\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/Jayita10\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/85472715?v=4?s=100\" width=\"100px;\" alt=\"Jayita Pramanik\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJayita Pramanik\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=Jayita10\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/MukulKolpe\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/78664749?v=4?s=100\" width=\"100px;\" alt=\"Mukul Kolpe\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMukul Kolpe\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=MukulKolpe\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/EmmanuelMarianMat\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/75481347?v=4?s=100\" width=\"100px;\" alt=\"EmmanuelMarianMat\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eEmmanuelMarianMat\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=EmmanuelMarianMat\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://carlosfelix.pythonanywhere.com/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/18339454?v=4?s=100\" width=\"100px;\" alt=\"Carlos Felix\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eCarlos Felix\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=carlosfrodrigues\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/Stuie\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/389169?v=4?s=100\" width=\"100px;\" alt=\"Stuart Gilbert\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eStuart Gilbert\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=Stuie\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/ketan40\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/15875215?v=4?s=100\" width=\"100px;\" alt=\"Ketan Deshmukh\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eKetan Deshmukh\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=ketan40\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://ie.linkedin.com/in/trionabarrow\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/2207006?v=4?s=100\" width=\"100px;\" alt=\"Tríona Barrow\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eTríona Barrow\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=polkabunny\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://www.bambutz.dev\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/7022144?v=4?s=100\" width=\"100px;\" alt=\"BamButz\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eBamButz\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=BamButz\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/dogfootman\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/80231499?v=4?s=100\" width=\"100px;\" alt=\"dogfootman\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003edogfootman\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#userTesting-dogfootman\" title=\"User Testing\"\u003e📓\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/choryang\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/47209678?v=4?s=100\" width=\"100px;\" alt=\"Okhee Lee\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eOkhee Lee\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#userTesting-choryang\" title=\"User Testing\"\u003e📓\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/joowons\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/85204858?v=4?s=100\" width=\"100px;\" alt=\"joowon\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ejoowon\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#userTesting-joowons\" title=\"User Testing\"\u003e📓\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/bconfiden2\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/58922834?v=4?s=100\" width=\"100px;\" alt=\"Sanghong Kim\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eSanghong Kim\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=bconfiden2\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/Rohit-R2000\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/83547290?v=4?s=100\" width=\"100px;\" alt=\"Rohit Rajput\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eRohit Rajput\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=Rohit-R2000\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/arshad-k7\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/49522121?v=4?s=100\" width=\"100px;\" alt=\"Arshad\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eArshad\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=arshad-k7\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://thearchivelog.dev\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/44025432?v=4?s=100\" width=\"100px;\" alt=\"Jongwoo Han\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJongwoo Han\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=jongwooo\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://blog.naver.com/dev4unet\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/8984372?v=4?s=100\" width=\"100px;\" alt=\"Yoo Jae-Sung\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eYoo Jae-Sung\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#userTesting-dev4unet\" title=\"User Testing\"\u003e📓\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/raccoon-mh\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/130422754?v=4?s=100\" width=\"100px;\" alt=\"Minhyeok LEE\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMinhyeok LEE\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/pulls?q=is%3Apr+reviewed-by%3Araccoon-mh\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/SungWoongz\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/99646153?v=4?s=100\" width=\"100px;\" alt=\"SungWoongz\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eSungWoongz\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#userTesting-SungWoongz\" title=\"User Testing\"\u003e📓\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/gabrilito1\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/105322029?v=4?s=100\" width=\"100px;\" alt=\"Gabriel lima\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eGabriel lima\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=gabrilito1\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/tharun634\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/53267275?v=4?s=100\" width=\"100px;\" alt=\"Tharun K\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eTharun K\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=tharun634\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/ShehzadAhm\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/55528726?v=4?s=100\" width=\"100px;\" alt=\"Shehzad\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eShehzad\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=ShehzadAhm\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://wavee.world/invitation/b96d00e6-b802-4a1b-8a66-2e3854a01ffd\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/22633385?v=4?s=100\" width=\"100px;\" alt=\"Ikko Eltociear Ashimine\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eIkko Eltociear Ashimine\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=eltociear\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/MohitKambli\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/31406633?v=4?s=100\" width=\"100px;\" alt=\"Mohit Kambli\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMohit Kambli\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=MohitKambli\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/hanizang77\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/194071819?v=4?s=100\" width=\"100px;\" alt=\"Hannie Zang\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eHannie Zang\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloud-barista/cb-tumblebug/commits?author=hanizang77\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/Jeon-Jinhyeok\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/85602664?v=4?s=100\" width=\"100px;\" alt=\"Jinhyeok\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJinhyeok\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#userTesting-Jeon-Jinhyeok\" title=\"User Testing\"\u003e📓\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\n---\n\n---\n\n## License\n\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fcloud-barista%2Fcb-tumblebug.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fcloud-barista%2Fcb-tumblebug?ref=badge_large)\n\n---\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloud-barista%2Fcb-tumblebug","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloud-barista%2Fcb-tumblebug","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloud-barista%2Fcb-tumblebug/lists"}