https://github.com/casosorg/casos
CasOS: a cloud operating system built on Kubernetes, Live Demo: https://demo.casos.net
https://github.com/casosorg/casos
auth authorization casbin casdoor container control-plane docker go golang k3s k8s kubernetes linux react windows
Last synced: about 2 hours ago
JSON representation
CasOS: a cloud operating system built on Kubernetes, Live Demo: https://demo.casos.net
- Host: GitHub
- URL: https://github.com/casosorg/casos
- Owner: casosorg
- License: apache-2.0
- Created: 2017-07-05T04:20:15.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2026-07-03T13:27:31.000Z (6 days ago)
- Last Synced: 2026-07-03T15:18:03.591Z (6 days ago)
- Topics: auth, authorization, casbin, casdoor, container, control-plane, docker, go, golang, k3s, k8s, kubernetes, linux, react, windows
- Language: JavaScript
- Homepage: https://casos.net
- Size: 829 KB
- Stars: 1,213
- Watchers: 24
- Forks: 86
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Contributing: contributing.md
- License: LICENSE
- Code of conduct: code-of-conduct.md
Awesome Lists containing this project
README
# CasOS
**A cloud operating system built on Kubernetes**
[](https://github.com/casosorg/casos/actions/workflows/build.yml)
[](https://github.com/casosorg/casos/releases/latest)
[](https://goreportcard.com/report/github.com/casosorg/casos)
[](https://github.com/casosorg/casos/blob/master/LICENSE)
[](https://github.com/casosorg/casos/releases/latest)
[](https://discord.gg/5rPsrAzK7S)
**Official Website: [https://www.casos.net](https://www.casos.net)**
**Live Demo: [https://demo.casos.net](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](https://casdoor.org)
## 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](https://golang.org/dl/) 1.26+
- **Frontend**: [Node.js](https://nodejs.org/) 20+ and [Yarn](https://classic.yarnpkg.com/) 1.x
- MySQL database
- A [Casdoor](https://casdoor.org) instance (for authentication)
Supported platforms: **Linux**, **macOS**, **Windows**
## Configuration
Edit `conf/app.conf` with your values:
```ini
appname = casos
httpport = 9000
runmode = dev
; Database
driverName = mysql
dataSourceName= user:pass@tcp(host:3306)/
dbName = casos
; Casdoor
casdoorEndpoint = https://your-casdoor-instance
clientId =
clientSecret =
casdoorOrganization =
casdoorApplication =
; Kubernetes control plane
apiserverPort = 6443
apiserverBind = 127.0.0.1
dataDir = /var/lib/casos
```
## Development
### Backend
```bash
go run main.go
```
### Frontend
```bash
cd web
# Install dependencies (first time only)
yarn install
# Start dev server — port 8001, proxies API to localhost:9000
yarn start
```
## Deployment
### Backend
```bash
# Build binary
go build -o casos .
# Run
./casos
```
### Frontend
```bash
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
```bash
cd web
yarn lint:js # ESLint
yarn lint:css # Stylelint
yarn lint # both
```
## License
[Apache 2.0](https://github.com/casosorg/casos/blob/master/LICENSE)