MCPcopy Index your code
hub / github.com/casosorg/casos

github.com/casosorg/casos @v1.19.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.19.0 ↗ · + Follow
1,408 symbols 3,555 edges 220 files 230 documented · 16%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

CasOS

A cloud operating system built on Kubernetes

Build Release Go Report License Platform Discord

Official Website: https://www.casos.net

Live Demo: https://demo.casos.net


What is CasOS?

CasOS is a cloud operating system built on Kubernetes. It embeds the Kubernetes API server, controller manager, and scheduler, so you do not need an existing Kubernetes cluster or a separate control plane — CasOS is the platform itself. Run a single binary and get a fully functional cloud OS with a built-in web UI.

Features

  • Embedded Kubernetes stack (API server, controller manager, scheduler) — no external cluster needed
  • Cluster resource management: Nodes, Namespaces, Pods, Services, ConfigMaps, ServiceAccounts, ClusterRoleBindings
  • Dashboard with cluster overview
  • DockerHub image browser
  • Multi-language support (i18n)
  • Authentication via Casdoor

Tech Stack

Layer Technology
Backend Go 1.26+, Beego, MySQL (ORM)
Frontend React 18, Ant Design 6, recharts, i18next
Auth Casdoor (OAuth2 / OIDC)

Project Structure

casos/
├── main.go                  # Entry point
├── conf/app.conf            # Backend configuration
├── controllers/             # HTTP controllers (Beego routing)
├── object/                  # Business logic and data models
├── routers/                 # Route configuration and filters
├── proxy/                   # kube-proxy related logic
└── web/                     # React frontend
    └── src/
        ├── App.js
        ├── DashboardPage.js
        ├── ManagementPage.js
        ├── PodListPage.js
        ├── NodeListPage.js
        ├── NamespaceListPage.js
        ├── ServiceListPage.js
        ├── ConfigMapListPage.js
        ├── ServiceAccountListPage.js
        ├── ClusterRoleBindingListPage.js
        └── backend/         # API client helpers

Prerequisites

  • Backend: Go 1.26+
  • Frontend: Node.js 20+ and Yarn 1.x
  • MySQL database
  • A Casdoor instance (for authentication)

Supported platforms: Linux, macOS, Windows

Configuration

Edit conf/app.conf with your values:

appname       = casos
httpport      = 9000
runmode       = dev

; Database
driverName    = mysql
dataSourceName= user:pass@tcp(host:3306)/
dbName        = casos

; Casdoor
casdoorEndpoint     = https://your-casdoor-instance
clientId            = <your-client-id>
clientSecret        = <your-client-secret>
casdoorOrganization = <your-org>
casdoorApplication  = <your-app>

; Kubernetes control plane
apiserverPort = 6443
apiserverBind = 127.0.0.1
dataDir       = /var/lib/casos

Development

Backend

go run main.go

Frontend

cd web

# Install dependencies (first time only)
yarn install

# Start dev server — port 8001, proxies API to localhost:9000
yarn start

Deployment

Backend

# Build binary
go build -o casos .

# Run
./casos

Frontend

cd web

# Production build (outputs to web/build/)
yarn build

Serve the web/build/ directory with any static file server, or let the Go backend serve it directly.

Lint

cd web

yarn lint:js    # ESLint
yarn lint:css   # Stylelint
yarn lint       # both

License

Apache 2.0

Extension points exported contracts — how you extend this code

NodeDeployLogger (FuncType)
(no doc)
deploy/types.go
KubeconfigGenerator (FuncType)
(no doc)
deploy/types.go

Core symbols most depended-on inside this repo

ResponseError
called by 399
controllers/util.go
ResponseOk
called by 158
controllers/util.go
getAdminRestConfig
called by 120
controllers/pod.go
newClient
called by 110
object/configmap.go
Close
called by 39
deploy/executor.go
GetConfigString
called by 31
conf/conf.go
String
called by 26
deploy/executor.go
RequireAdmin
called by 22
controllers/util.go

Shape

Function 1,003
Method 242
Struct 125
Class 35
FuncType 2
TypeAlias 1

Languages

Go57%
TypeScript43%

Modules by API surface

store/helm.go50 symbols
object/monitor.go45 symbols
web/src/Setting.js29 symbols
deploy/executor.go27 symbols
object/machine_node_deploy.go23 symbols
web/tests/ui/worker-node-helpers.js22 symbols
deploy/service.go22 symbols
web/src/DeploymentListPage.js19 symbols
server/certs.go18 symbols
controllers/helm.go17 symbols
web/src/ServiceListPage.js16 symbols
web/src/PodListPage.js16 symbols

Datastores touched

(mysql)Database · 1 repos

For agents

$ claude mcp add casos \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact