Technical Documentation: kubero-dev/kubero
βΉοΈ Provenance: Multi-Tier Ingestion Β· CodeWiki Reference
Overview (`README.md`)
Kubero [pronounced: Kube Hero] is a self-hosted PaaS (Platform as a Service) that allows any developer to deploy their application on Kubernetes without specialized knowledge. Kubero follows the principles of 12-factor apps. It is possible to run apps based on existing containers or from source code.
More Screenshots and a full video on
YouTube
Features ([DEMO](https://demo.kubero.dev))
- Docker Deployments Deploy Docker containers on Kubernetes without needing Helm charts.
- App Templates (+160) Deploy popular applications like WordPress and Grafana with ready-to-use templates.
- CI/CD Pipelines Create unlimited pipelines with up to 4 separate staging environments for all your applications.
- GitOps Review Apps Automatically build, start, and clean up review apps when opening or closing pull requests.
- Automatic Redeployments Trigger app redeployments on pushes to branches or tags.
- Add-ons Integration Seamlessly deploy add-ons such as PostgreSQL and Redis alongside your applications.
- API & CLI Integrate seamlessly with existing tools and CI/CD workflows.
- Metrics & Monitoring Access integrated metrics to monitor application health.
- Notifications Get build and deployment updates via Discord, Slack, or Webhooks.
- Vulnerability Scans Perform scheduled or triggered scans for running applications.
- Application Logs View logs directly from the web UI for easy monitoring.
- Safe Restarts Restart applications safely and easily through the web UI.
- Web Console Use the built-in container web console for direct access.
- Scheduled Tasks Easily create and manage cronjobs.
- Multi-Tenancy Support for managing multiple tenants.
- Single Sign-On (SSO) Authenticate securely with GitHub and OAuth2.
- Basic Auth Configure Basic Auth for your applications with ease.
Basic Concept
Kubero is Kubernetes native and runs with two containers on any Kubernetes instance (kubero-ui and Operator). All data is stored on your Kubernetes etcd without an extra database.
Add-ons
| Addon | Maintainer | Built in* | |
|---|---|---|---|
| MySQL | groundhog2k | β | |
| PostgreSQL | groundhog2k | β | |
| Redis | groundhog2k | β | |
| MongoDB | groundhog2k | β | |
| RabbitMQ | groundhog2k | β | |
| CouchDB | Apache | β | |
| Haraka Mail Server | Kubero | β | |
| MySQL | Bitnami | β οΈ (deprecated) | |
| PostgreSQL | Bitnami | β οΈ (deprecated) | |
| Redis | Bitnami | β οΈ (deprecated) | |
| MongoDB | Bitnami | β οΈ (deprecated) | |
| Elasticsearch | Bitnami | β οΈ (deprecated) | |
| Kafka | Bitnami | β οΈ (deprecated) | |
| Memcache | Bitnami | β οΈ (deprecated) | |
| RabbitMQ | Bitnami | β οΈ (deprecated) | |
| PostgreSQL HA | CloudNative | ||
| Cludflare Tunnels | Adianth | ||
| Minio | Minio | ||
| Percona MongoDB Cluster | Percona | ||
| Crunchy Postgres Cluster | Crunchy Data | ||
| Redis Cluster | Opstree | ||
| CockroachDB | CockroachDB | ||
| Clickhouse | Altinity |
* These add-ons are shipped with the Kubero Operator. They are not High Availability (HA) ready but greate to to get you started as fast as possible.
** All Bitnami add-ons are deprecated and will be removed in future releases due to Broadcom's image repository removal. read more here
164+ Application templates (similar to Heroku Buttons)
- WordPress
- Grafana
- Bitwarden
- Kuma
- Trilium Notes
- ...
Check out the full list here or submit your own app! Read here how to do it.
Quickstart
1) Download and unpack the Kubero CLI (MacOS, Linux, Windows)
Binaries (MacOS, Linux)
$ curl -fsSL get.kubero.dev | bashBrew (MacOS, Linux)
$ brew tap kubero-dev/kubero
$ brew install kubero-cli2) Run kubero install to install all components on a new or your existing cluster
You can bring your own existing cluster or create one with the kubero install on one of the following providers:
- GKE
- Scaleway
- DigitalOcean
- Linode
- Kind (local)
Supported GIT repositories (hosted and self-hosted)
- Gitea / Forgejo
- Gogs
- Github
- Gitlab
- Bitbucket
Tested languages/frameworks
Basically everything that can be packaged in a single container can be deployed by Kubero.
- GoLang (including Hugo, gin-gonic)
- Python (including Flask)
- JavaScript/NodeJS
- PHP (including Laravel)
- Ruby (including Rails)
- Static HTML
- Rust (including Rocket)
- ...
How GitOps Works
- Create a pipeline with the phases you need (review, test, stage, production)
- (optional) Connect the pipeline to your git repository (GitHub, Bitbucket, GiLab, Gitea, Gogs)
- Configure your apps with cronjobs and addons
Kubero starts now building your app. Once the build is complete, Kubero will launch the final container and make it accessible via the configured domain.
Techstack
- Backend
- Frontend
- CLI
- Operator
- Infrastructure
Links
- Documentation https://www.kubero.dev/docs/
- Roadmap https://github.com/orgs/kubero-dev/projects/1/views/3
Community
Contributing
All contributions are welcome!
- Rise an issue/bug/error
- Open a feature request
- Discuss ideas in the discussions section or discord
- Fix typos (I do a lot of them)
- Contribute code
- Write articles
Supporting this project
Starring this project is a huge motivation. β Thank you!
Overview (`client/README.md`)
base
Project setup
# yarn
yarn
# npm
npm install
# pnpm
pnpm install
# bun
bun installCompiles and hot-reloads for development
# yarn
yarn dev
# npm
npm run dev
# pnpm
pnpm dev
# bun
pnpm run devCompiles and minifies for production
# yarn
yarn build
# npm
npm run build
# pnpm
pnpm build
# bun
pnpm run buildLints and fixes files
# yarn
yarn lint
# npm
npm run lint
# pnpm
pnpm lint
# bun
pnpm run lintCustomize configuration
Overview (`server/README.md`)
Description
This is Kubero server part of the Kubero project. It is a NestJS application that provides REST API for the Kubero project. It is a part of the Kubero project that is a platform for managing Kubernetes clusters.
Project setup
$ yarn installCompile and run the project
# development
$ yarn run start
# watch mode
$ yarn run start:dev
# production mode
$ yarn run start:prodAdministration Commands
# Reset admin account (creates or updates with new password)
$ yarn cli:reset-adminRun tests
# unit tests
$ yarn run test
# e2e tests
$ yarn run test:e2e
# test coverage
$ yarn run test:covResources
Check out a few resources that may come in handy when working with NestJS:
- Visit the NestJS Documentation to learn more about the framework.
- For questions and support, please visit our Discord channel.
- To dive deeper and get more hands-on experience, check out our official video courses.
- Deploy your application to AWS with the help of NestJS Mau in just a few clicks.
- Visualize your application graph and interact with the NestJS application in real-time using NestJS Devtools.
- Need help with your project (part-time to full-time)? Check out our official enterprise support.
- To stay in the loop and get updates, follow us on X and LinkedIn.
- Looking for a job, or have a job to offer? Check out our official Jobs board.
Overview (`services/README.md`)
Kubero Services
Services can be added to Kubero by creating a pull request to this repository.
Required qualifications to submit a service:
- Single app container (not counting addons)
- Publicly accessible Docker images
- Maintained and documented (1 commit within the last 6 months)
- Icon/Logo (square, max 300x300px)
How to add a new services
- Fork this repository
- Create a new folder with the name of your service
- Add a app.yaml and service.yaml
- Create a pull request
app.yaml
The app yaml that describes your service technically. You can use the following template to get started.
If you have a running instace of Kubero you can use the CLI to lookup the values for your service.
/* Detailed source-code truncated for AI context efficiency. */--- METRICS ---
- Files Extracted: 4
- Estimated Token Budget: ~4177 tokens
- Canonical Reference: https://codewiki.google/github.com/kubero-dev/kubero