/kubero

A free and self-hosted Heroku PaaS alternative for Kubernetes that implements GitOps

Primary LanguageTypeScriptGNU General Public License v3.0GPL-3.0



License GitHub release (latest by date) Discord Demo


Kubero [pronounced: Kube Hero] is a fully self-hosted Internal Developer Platform (IDP) that brings the workflows of Heroku to your Kubernetes cluster. It enables you to deploy your applications with a few clicks on the Dashboard or by CLI. It has a built-in CI/CD pipeline and supports multiple staging environments.

More Screenshots and a full video on YouTube

How it Works (DEMO)

  1. Create a pipeline with the phases you need (review, test, stage, production)
  2. Connect the pipeline to your git repository (Github, Bitbucket, Gitlab, Gitea, Gogs)
  3. Configure your apps with cronjobs and addons

Kubero will then start an init container that will clone your repository and another init container to build your app. Kubero is now able to start the container and expose it to the internet. You can now access your app via the configured domain.

What can Kubero do for you?

  • Create a CI pipeline with up to 4 separate staging environments for all your applications
  • Build, start and cleanup review-apps after opening/closing a pull request
  • Automatic redeployment of the app based on a push to a branch or tag
  • Create scheduled tasks as cronjobs
  • Deploy well known apps with templates (Wordpress, Grafana, ...)
  • Easy deployment of your apps on Kubernetes without helm charts
  • Deploy add-ons for your application (PostgreSQL, Redis, and more ...)
  • Easy access of application logs in the UI
  • Easy and safe restart of the application in the UI
  • Periodic vulnerability scans of your running apps

What Kubero won't do for you

  • Manage your Kubernetes cluster
  • Give access to your container CLI

Supported GIT repositories (hosted and self-hosted)

  • Gitea / Forgejo
  • Gogs
  • Github
  • Gitlab
  • Bitbucket
  • OneDev (planned)

Tested languages/frameworks

Basically everything that can be shipped in a single container. Kubero uses official images to build and run the apps. But they can be replaced or extended to fit your needs.

  • GoLang (including Hugo, gin-gonic)
  • Python (including Flask)
  • JavaScript/NodeJS
  • PHP (including Laravel)
  • Ruby (including Rails)
  • Static HTML
  • Rust (including Rocket)
  • ...

You find the preconfigured buildpacks and examples here: https://github.com/kubero-dev/buildpacks

Preconfigured add-ons

The Kubero Operator ships with several basic addons that can be used in your apps.

  • MySQL
  • PostgreSQL
  • Redis
  • MongoDB
  • Elasticsearch
  • Kafka
  • CouchDB
  • Haraka Mail Server
  • RabbitMQ (WIP)
  • CockroachDB (WIP)
  • Minio (planned)
  • InfluxDB (planned)

50+ Application templates (similar to Heroku Buttons)

Check out the full list here or submit your own app! Read here how to do it.

Basic Concept

Kubero is Kubernetes native and runs with two containers on any Kubernetes instance.

Quickstart

1) Download and unpack the Kubero CLI (MacOS, Linux, Windows)

Binaries (MacOS, Linux)

curl -fsSL get.kubero.dev | bash

Brew (MacOS, Linux)

brew tap kubero-dev/kubero
brew install kubero-cli

2) Run kubero install to install all components on an new or your existing cluster

You can bring your own cluster or create one with the kubero install on one of the following providers:

  • GKE
  • Scaleway
  • DigitalOcean
  • Linode
  • Kind (local)

Documentation

https://docs.kubero.dev/

Roadmap

https://github.com/orgs/kubero-dev/projects/1/views/3

Community

kubero Discord server Banner

Contributing

All contributions are welcome!

  • Open an issue
  • Add a feature or open a feature request
  • Discuss ideas in the discussions
  • Fix typos
  • Contribute code
  • Write articles

Supporting this project

Starring this project is a huge motivation. ⭐ Thank you!

Stargazers over time