OpenSourcePicks

Open source alternatives to popular software, with live GitHub data

GitHub stats refreshed every day

Canine

Heroku-style web interface for deploying apps, workers and cron jobs to your own Kubernetes cluster

Open source alternative to

Visit CanineGitHubDocumentation

Main features

  • Deploys on push from GitHub, GitLab or Bitbucket, or from a registry
  • Dockerfile or Cloud Native Buildpacks builds, also inside the cluster
  • Web services, background workers and cron jobs from one codebase
  • Preview apps for pull requests, configured in canine.yml
  • Add-ons installed from any Helm chart
  • Custom domains with automatic TLS through cert-manager
  • CPU, memory and GPU limits and persistent volumes
  • Teams, access control and SSO with SAML, OIDC or LDAP
  • Deployment notifications to Slack, Discord, Teams and Google Chat
  • CLI, API tokens and MCP server
  • Export of generated Kubernetes manifests

What Canine does

Canine is a control panel that sits between your Git repositories and one or more Kubernetes clusters. You connect a cluster with its kubeconfig, link a repository on GitHub, GitLab or Bitbucket, and describe the processes the app runs: web services, background workers and cron jobs. Canine then builds an image, pushes it to a registry and writes the Kubernetes deployments, services, ingresses and cron jobs for you. The README frames it as Heroku’s simplicity on your own Kubernetes infrastructure, without writing YAML.

Images can be built from a Dockerfile or with Cloud Native Buildpacks such as Paketo or Heroku’s. Builds run on Docker in local mode, or as jobs inside the cluster through what Canine calls Build Clouds, so you do not need a separate CI system. Pre- and post-deploy commands handle tasks such as database migrations. Configuration values are stored as ConfigMaps and secrets as Kubernetes Secrets.

Add-ons and preview apps

Databases and other services are added as add-ons, which are ordinary Helm charts picked from Artifact Hub or a custom URL. Canine installs each one in its own namespace and lets you edit its values, restart it or open a shell in its pods. This is flexible, but it also means that backups and upgrades of those databases follow whatever the chart provides.

Preview apps create a copy of a project for an open pull request. A canine.yml file in the repository sets the services, environment variables and lifecycle scripts for previews, with ERB templating, and the documentation suggests sending previews to a separate cluster from production.

Self-hosting Canine

There are two self-hosted modes. Local mode runs Canine with Docker Compose (the app, a GoodJob worker and PostgreSQL) and is meant for evaluation, air-gapped setups and small teams; it needs Docker 24 or later and leaves TLS to you. Cluster mode installs Canine into a Kubernetes cluster (1.24 or later) with a Helm chart that also brings PostgreSQL, Traefik and cert-manager unless you already have them. The documentation says both modes have the same features as the hosted version. After the first admin account is created, sign-up is closed and other users are invited.

If you do not have a cluster, Canine can guide you through installing K3s on a single Ubuntu or Debian VPS, for which the docs recommend at least 4 GB of RAM. On any connected cluster it can install nginx-ingress, cert-manager and metrics-server.

Canine also documents an exit: you can export the manifests it manages as a zip file and apply them from your own CI pipeline, with the running apps left untouched.

Hosted version

Canine Cloud runs the Canine dashboard for you, while your apps still run on clusters you bring. According to the website, the first cluster is free and further clusters are paid; the paid tier lists unlimited team members, priority support and SSO/SAML.

Limitations

Canine needs Kubernetes, even if it can set up a small K3s server for you, and that is more to understand and maintain than a single Docker host. It is a younger project than Dokku or CapRover. Its documentation site was not reachable when we checked, so this review relies on the official documentation repository.

Who it suits

Canine suits small teams that want Kubernetes underneath, for portability across cloud providers or for later growth, but a Heroku-like interface on top. If you would rather avoid Kubernetes, Coolify, Dokploy and CapRover run on plain Docker; Kubero and Epinio are other Kubernetes-based options.

Technical details

Self-hosting needs

  • Kubernetes
  • PostgreSQL

Built with

  • Ruby
  • Ruby on Rails
  • Hotwire

GitHub topics

  • devops
  • heroku
  • hosting
  • kubernetes

Reviewed by the OpenSourcePicks editors from the project's repository and documentation. Something out of date? Tell us.