# Canine

A developer-friendly PaaS for your Kubernetes — deploy apps to your own cluster with the simplicity of Heroku and the power of Kubernetes.

Source: https://wheredoirunthis.com/products/canine · JSON: https://wheredoirunthis.com/api/products/canine · Read on 2026-10-14

## At a glance

- Type: PaaS
- Kind: Open core
- Isolation: Container
- Free tier: Yes
- Starting price: $20/mo
- GPU: Not documented
- Regions: Not disclosed
- Coverage: 18 of 61 assessed capabilities supported
- Agent readiness: read 9 of 11 signals, drive 7 of 11 signals

## Links

- Homepage: https://canine.sh/
- Docs: https://docs.canine.sh/
- Pricing: https://canine.sh/#plans
- Repository: https://github.com/CanineHQ/canine

## Pricing

- Model: Free first Cloud cluster; $20/month per additional cluster; free self-host plus own infrastructure.
- Unit: additional cluster/month
- Free tier: Yes

| Tier | Price | Includes | Notes |
| --- | --- | --- | --- |
| Free | $0/month | 1 cluster, unlimited projects/deployments, SSL, GitHub/GitLab; 1 customer-owned cluster; workload infrastructure separately billed. |  |
| Pro | $20/additional cluster/month | Per additional cluster; unlimited team members; priority support; SSO/SAML; First cluster remains free; $20 is each additional cluster, not an account-wide flat fee. |  |

- Overages: $20/month per additional cluster beyond the first. Customer pays underlying cloud provider separately.
- Card required: No
- Source: https://canine.sh/#plans

## Website design

Desktop public website · assessed 2026-10-14

Partial assessment — some pages could not be captured.

Landing and pricing use navy backgrounds, white sans-serif hierarchy and violet actions. Documentation unavailable (503).

- Styles: Corporate
- Landing page: captured
- Pricing: captured
- Docs: unavailable

## Runtime

- **GPU & accelerators**: configurable GPU limits (BYOC — only if your cluster has GPUs) — "README: 'Resource Constraints — configure CPU, memory, and GPU limits for your applications.' Canine provides no GPUs itself; it can set GPU resource constraints IF your own K8s cluster has GPU nodes." [source](https://github.com/CanineHQ/canine) (confidence: medium)
- **BYOC (Bring your own cloud)**: Yes — "THE defining feature: 'We're not a hosting provider — Canine connects to your servers.' Deploy to your own Kubernetes on 200-230+ cloud providers (Hetzner, DigitalOcean, AWS, …). The control plane is hosted (or self-hosted); the workloads run in YOUR cluster." [source](https://canine.sh/) (confidence: high)
- **Secrets management**: Yes — "Environment variables / secrets management per app ('set NODE_ENV to production'; env vars in the deployment lifecycle). Self-host: 'your secrets never leave your network'." [source](https://canine.sh/model-context-protocol) (confidence: high)
- **Storage options**: Kubernetes persistent volumes on your own cluster; stateful add-ons via Helm — "Storage is your cluster's K8s PVs; the add-on marketplace deploys stateful services (databases, caches) onto your cluster." [source](https://canine.sh/) (confidence: medium)
- **Supported workloads**: web-apps, background-jobs, cron-jobs, any-container, 10000+-helm-add-ons — "'Deploy web apps, background jobs, and even cron jobs from a single codebase' + 10,000+ open-source projects deployable via Helm add-ons (databases, caches, observability, Sentry, etc.)." [source](https://canine.sh/) (confidence: high)
- **Persistence**: persistent (Kubernetes persistent volumes on your cluster; stateful add-ons) — "Deploys to your K8s, which provides persistent volumes; the add-on marketplace provisions stateful services (Postgres/Redis) that use PVCs. Persistence is your cluster's." [source](https://canine.sh/) (confidence: medium)
- **Data jurisdiction**: operator's choice — your own K8s clusters across 200+ providers/regions — "Because workloads run on YOUR clusters (BYOI), data residency / jurisdiction is entirely the operator's choice of where their K8s lives. 'Your code, secrets, and deployment data never leave your network' (self-host)." [source](https://canine.sh/) (confidence: high)
- **Resource limits & quotas**: Cloud: 1 free cluster, $20/month each additional cluster; own-cluster workload capacity. Dev environments: up to 5 concurrent terminal sessions per user. — "Configurable CPU/memory/GPU resource constraints per application; easy autoscaling (K8s). All capacity is your own cluster's. No per-seat limits (unlimited users)." [source](https://github.com/CanineHQ/canine) (confidence: high)
- **SDK languages**: Not documented — "No client SDK library — the interfaces are the CLI, the REST API, and the MCP server. (Canine deploys ANY containerized app in any language; that is the workload, not a client SDK.)" (source: docs + README) (confidence: high)
- **Network & egress controls**: Not documented — "Egress/network policy is your Kubernetes cluster's concern (K8s NetworkPolicies), not a Canine-provided control. No documented Canine egress-policy feature." (source: not a Canine-managed facet) (confidence: medium)
- **Snapshots & forks**: No — "Rollbacks are VERSION-based ('one-click deployment & rollbacks', version tracking), not VM/instance snapshots or CoW forks." [source](https://canine.sh/) (confidence: high)
- **Deployment methods**: git-push, dockerfile, buildpack, cli, api, mcp, dashboard — "Push-to-deploy from GitHub/GitLab/Bitbucket; a full CLI (`canine`, shell/logs/deploy); a REST API; and a hosted MCP server (canine.sh/mcp). Built-in image building (Dockerfile or buildpacks)." [source](https://canine.sh/) (confidence: high)
- **Isolation**: Container — "Canine deploys containerized apps to your Kubernetes clusters (K8s pods/containers). 'Deploy any application that can run in a container in a single click'; built-in Docker image building (Dockerfile or buildpacks). The isolation is whatever your K8s provides (containers)." [source](https://canine.sh/) (confidence: high)

## Capabilities

### AI & agents

| Capability | Status | Evidence |
| --- | --- | --- |
| Agent skills | Not supported | "No installable agent-skills system (MCP tools are the agent surface)." [source](https://canine.sh/) |
| AI app builder | Not supported | "No prompt-to-app / vibe-coding builder — you bring your own repo/Dockerfile." [source](https://canine.sh/) |
| Autonomous QA agent | Not supported | "Not documented on fresh homepage, README, llms.txt, self-host, MCP or dev-environments surface; docs subdomain unavailable." [source](https://canine.sh/) |
| Built-in coding agent | Not supported | "Ships no first-party coding agent — it integrates external harnesses via MCP instead." [source](https://canine.sh/) |
| BYOK for LLMs | Not supported | "No platform LLM key management documented." [source](https://canine.sh/dev-environments) |
| Credential-injection proxy | Not supported | "Not documented on fresh homepage, README, llms.txt, self-host, MCP or dev-environments surface; docs subdomain unavailable." [source](https://canine.sh/) |
| LLM gateway | Not supported | "No LLM gateway/proxy." [source](https://canine.sh/) |
| MCP client | Not supported | "No MCP client (Canine EXPOSES an MCP server; it does not consume external MCP tools)." [source](https://canine.sh/) |
| MCP-server hosting | Not supported | "Canine can deploy ANY container (so you could host an MCP server as an app), but there is no distinct 'host MCP servers' feature — that is just generic app deployment. Its OWN MCP server is mcp-server (pass)." [source](https://canine.sh/) |
| MCP server | Supported | "Built-in hosted MCP server: `claude mcp add --transport http canine https://canine.sh/mcp` (OAuth) — deploy/debug/scale/rollback in natural language, full audit trail, same permissions as the UI." [source](https://canine.sh/model-context-protocol) |
| Model inference API (first-party) | Not supported | "Not documented on fresh homepage, README, llms.txt, self-host, MCP or dev-environments surface; docs subdomain unavailable." [source](https://canine.sh/) |
| Preinstalled coding agent | Partially supported | "Built for AI coding. Give Claude Code, Cursor, or any AI agent a cloud environment to build and test in. Own Dockerfile; preinstallation/auth wiring not established." [source](https://canine.sh/dev-environments) |

### Networking & delivery

| Capability | Status | Evidence |
| --- | --- | --- |
| Automatic HTTPS | Supported | "'SSL Certificate Management — Let's Encrypt SSL certificates are automatically provisioned and managed for your applications.'" [source](https://canine.sh/) |
| Custom domains | Supported | "Custom domain management with DNS integration and automatic SSL" [source](https://raw.githubusercontent.com/CanineHQ/canine/main/README.md) |
| Direct public IPv6 | Not applicable | "No per-instance public IPv6 primitive; networking is your K8s ingress/service model." [source](https://canine.sh/) |
| Edge KV store | Not applicable | "Not an edge-runtime KV store; Canine is a K8s deployment PaaS." [source](https://canine.sh/) |
| Egress controls | Not supported | "No Canine-managed egress policy; network policy is your Kubernetes cluster's concern (K8s NetworkPolicies)." [source](https://canine.sh/) |
| Email send / receive | Not supported | "No platform workload email capability documented." [source](https://canine.sh/) |
| Public preview URLs | Supported | "Every dev environment gets a public URL. Share it with teammates, designers, or stakeholders to preview changes live." [source](https://canine.sh/dev-environments) |
| Private networking | Partially supported | "Kubernetes resource builders (Deployment, Service, Ingress, ConfigMap, Secrets, CronJob, PVC); cluster Services provide internal connectivity, not a managed cross-region VPC." [source](https://canine.sh/llms.txt) |
| Built-in reverse proxy | Supported | "As a PaaS over K8s, Canine manages ingress/routing of external traffic to your deployed app services (with auto-SSL)." [source](https://canine.sh/) |

### Organisation & security

| Capability | Status | Evidence |
| --- | --- | --- |
| Built-in auth | Not supported | "Account-based isolation describes control-plane IAM, not workload auth." [source](https://raw.githubusercontent.com/CanineHQ/canine/main/README.md) |
| BYOC | Supported | "THE defining feature: connect to your own Kubernetes on 200-230+ cloud providers; 'we're not a hosting provider — Canine connects to your servers.'" [source](https://canine.sh/) |
| Deploy into customers' VPCs | Not supported | "Not documented on fresh homepage, README, llms.txt, self-host, MCP or dev-environments surface; docs subdomain unavailable." [source](https://canine.sh/) |
| Secrets management | Supported | "Environment variables and Kubernetes secrets management" [source](https://raw.githubusercontent.com/CanineHQ/canine/main/README.md) |
| Self-host / OSS core | Supported | "Canine is released under the Apache 2.0 License. docker compose up -d" [source](https://raw.githubusercontent.com/CanineHQ/canine/main/README.md) |
| Sharing | Supported | "Every dev environment gets a public URL. Share it with teammates, designers, or stakeholders to preview changes live." [source](https://canine.sh/dev-environments) |
| SSO / SAML | Partially supported | "Pro: SSO / SAML authentication. Self-host README includes SAML, OIDC, LDAP." [source](https://canine.sh/#plans) |
| Teams | Supported | "Team management: SSO, RBAC, team-based access controls; unlimited users on self-host." [source](https://canine.sh/self-hosted) |
| Workload identity | Not supported | "Not documented on fresh homepage, README, llms.txt, self-host, MCP or dev-environments surface; docs subdomain unavailable." [source](https://canine.sh/) |

### Developer access

| Capability | Status | Evidence |
| --- | --- | --- |
| CLI | Supported | "'A CLI that gets out of your way — kick off a shell, tail logs, deploy, all from your terminal.' Installed via Homebrew/Docker; `canine local start`." [source](https://canine.sh/) |
| E2B-compatible API | Not supported | "Not documented on fresh homepage, README, llms.txt, self-host, MCP or dev-environments surface; docs subdomain unavailable." [source](https://canine.sh/) |
| Filesystem API | Not applicable | "No remote-file API (not a sandbox runtime; file access is whatever your app/container exposes)." [source](https://canine.sh/) |
| Git deploy | Supported | "'Github Integration — Canine pulls your code and builds your application when you push to Github' (also GitLab/Bitbucket). Push-to-deploy is the core primitive." [source](https://canine.sh/) |
| HTTP data API | Not applicable | "Data-layer (query DATA over HTTP) primitive — not applicable; Canine's API is a control/deploy plane." [source](https://canine.sh/) |
| OpenAPI spec | Supported | "openapi: 3.0.1; title: Canine API V1" [source](https://canine.sh/swagger) |
| Private container registry | Not supported | "Built-in image building (Dockerfile/buildpacks), but no hosted private container REGISTRY service for users." [source](https://github.com/CanineHQ/canine) |
| Public API | Supported | "'REST API — full API for CI/CD and automation integrations.'" [source](https://canine.sh/self-hosted) |
| SDK | Not supported | "No client SDK library — the interfaces are the CLI, REST API, and MCP server." [source](https://canine.sh/) |
| SSH access | Partially supported | "The CLI can 'kick off a shell' into deployed apps (a pod exec / interactive shell), but not raw sshd-into-a-VM. (Hence no derived might-work harnesses.)" [source](https://canine.sh/) |

### Compute & storage

| Capability | Status | Evidence |
| --- | --- | --- |
| Cloud-init / ignition config | Not supported | "Not documented on fresh homepage, README, llms.txt, self-host, MCP or dev-environments surface; docs subdomain unavailable." [source](https://canine.sh/) |
| Desktop / computer-use sandbox | Not applicable | "No virtual-desktop / computer-use sandbox." [source](https://canine.sh/) |
| GPU compute | Partially supported | "'Configure CPU, memory, and GPU limits for your applications' — GPU resource constraints IF your own K8s cluster has GPU nodes (Canine provides no GPUs itself)." [source](https://github.com/CanineHQ/canine) |
| Live-state (memory) snapshots | Not supported | "Not documented on fresh homepage, README, llms.txt, self-host, MCP or dev-environments surface; docs subdomain unavailable." [source](https://canine.sh/) |
| Multi-region | Partially supported | "Multi-cluster: 'manage multiple Kubernetes clusters from one UI' across 200+ providers — you can place clusters in many regions, but it's YOUR clusters' placement (BYOC), not Canine-operated regions." [source](https://canine.sh/self-hosted) |
| Object storage | Not supported | "Not documented on fresh homepage, README, llms.txt, self-host, MCP or dev-environments surface; docs subdomain unavailable." [source](https://canine.sh/) |
| Persistent disk | Supported | "Volume management for stateful applications and databases" [source](https://raw.githubusercontent.com/CanineHQ/canine/main/README.md) |
| Sandbox templates / custom images | Not applicable | "A PaaS that deploys your apps from git/Dockerfile/buildpacks — not a sandbox-image template system you fork instances from." [source](https://canine.sh/) |
| Scale to zero | Not supported | "'Easy Autoscaling — scale it back down when you don't need it' (K8s HPA), but no documented scale-to-IDLE-zero primitive." [source](https://canine.sh/) |
| Selectable isolation runtime | Not supported | "Not documented on fresh homepage, README, llms.txt, self-host, MCP or dev-environments surface; docs subdomain unavailable." [source](https://canine.sh/) |
| Snapshots / forking | Not supported | "Rollbacks are VERSION-based (deployment history), not VM/instance snapshots or CoW forks." [source](https://canine.sh/) |

### Data

| Capability | Status | Evidence |
| --- | --- | --- |
| Database branching | Not applicable | "Data-layer (CoW DB branch) primitive — does not apply to a deployment PaaS." [source](https://canine.sh/) |
| Ephemeral instant DB (no-signup) | Not applicable | "No-signup claimable-DB primitive — a data-layer concept; not applicable." [source](https://canine.sh/) |
| First-party database | Partially supported | "The add-on marketplace provisions databases/caches (Postgres, Redis) via Helm onto your cluster — managed-add-on provisioning, not a first-party managed DB SERVICE." [source](https://canine.sh/) |
| Vector search | Not applicable | "Data-layer RAG primitive — not a Canine feature (deploy a vector DB add-on if you want one)." [source](https://canine.sh/) |

### Platform & operations

| Capability | Status | Evidence |
| --- | --- | --- |
| Managed CI/CD runners | Not supported | "Not documented on fresh homepage, README, llms.txt, self-host, MCP or dev-environments surface; docs subdomain unavailable." [source](https://canine.sh/) |
| Built-in observability | Supported | "Metrics & monitoring: Cluster and project-level resource metrics" [source](https://canine.sh/llms.txt) |
| Preview environments | Supported | "'Preview environments — deploy feature branches as isolated environments.' A full ephemeral per-branch environment, the v6 PaaS-cohort key." [source](https://canine.sh/self-hosted) |
| Scheduled tasks | Supported | "'Deploy web apps, background jobs, and even cron jobs from a single codebase.' First-class cron-job workloads." [source](https://canine.sh/) |
| Project template marketplace | Not supported | "Not documented on fresh homepage, README, llms.txt, self-host, MCP or dev-environments surface; docs subdomain unavailable." [source](https://canine.sh/) |
| Durable workflows | Not supported | "Not a durable-execution / workflow engine — it is a deployment/PaaS control plane." [source](https://canine.sh/) |

## Agent readiness

### Read: 9 of 11 signals present

9/11 signals (7 full, 2 partial)

- Llms txt: pass — "https://canine.sh/llms.txt: substantive architecture, API and MCP reference."
- Llms full txt: fail — "/llms-full.txt 404."
- Robots AI policy: partial — "robots.txt is default-allow (explicit Allow for marketing pages, Disallow for app pages) with no AI-UA-specific allow/block — silent default-allow"
- JSON LD: pass — "Rich homepage ld+json: WebSite + Organization + SoftwareApplication"
- Sitemap: pass — "https://canine.sh/sitemap.xml: substantive URL set."
- Meta quality: pass — "Descriptive <title> + meta description + OG tags"
- Markdown negotiation: fail — "Accept text/markdown returns HTML; /index.md 404; docs unavailable."
- Content efficiency: pass — "Fresh server-rendered homepage has substantial hero, pricing and feature text (>5% of HTML)."
- Docs discoverable: partial — "Header docs link; docs root returns 503."
- Pricing machine readable: pass — "Homepage #plans: Free and Pro structured tiers, $20/additional cluster/month."
- Anti bot: pass — "Marketing site GETs 200 with a normal UA (no challenge). NOTE the docs subdomain hit an Akamai error."

### Drive: 7 of 11 signals present

7/11 signals (5 full, 2 partial)

- Public API: pass — "REST API for CI/CD + automation"
- Openapi spec: pass — "https://canine.sh/swagger: openapi 3.0.1 linked from Redoc /api-docs."
- MCP server: pass — "Documented hosted MCP endpoint `https://canine.sh/mcp` (OAuth; `claude mcp add ...`) — full per rubric v3 (documented hosted MCP endpoint at a path)"
- SDK packages: fail — "No client SDK — CLI + REST API + MCP only"
- Auth docs: pass — "Swagger X-API-Key header; llms.txt OAuth2 MCP authentication."
- Agent self serve creds: partial — "llms.txt documents RFC7591 registration; account authorization still needed; not live-probed."
- Webhooks: partial — "llms.txt Notifier: Slack, webhooks; signing not documented."
- CLI tool: pass — "Official CLI (Homebrew/Docker; shell/logs/deploy)"
- Error model: fail — "No documented JSON error model found"
- Rate limit docs: fail — "No API rate-limit docs found"
- Agent config: fail — "/agents.md and /.well-known/agent return 404; no skills listing."

## Coding harnesses

- Claude Code (Anthropic) — "'Connect Claude Code or Cursor to your infrastructure'; `claude mcp add --transport http canine https://canine.sh/mcp`. Claude Code drives deploy/debug/scale/rollback over the Canine MCP server (OAuth)." [source](https://canine.sh/model-context-protocol)
- Cursor (Anysphere) — "'Connect Claude Code, Cursor, or any MCP-compatible AI client to deploy, debug, and manage your apps in natural language.'" [source](https://canine.sh/model-context-protocol)

## Compliance & regions

- Regions note: Canine operates NO workload regions of its own — it is a BYOI control plane that deploys to YOUR Kubernetes clusters on 200-230+ cloud providers. Region/placement is entirely the operator's choice of where their clusters live. The hosted Canine Cloud is the management plane only.

## Open source

- Repository: https://github.com/CanineHQ/canine
- License: Apache-2.0
- Stars: 2937
- Forks: 124
- Self-host methods: docker, compose, helm, package-manager
- Self-host dependencies: postgres

## Company & presence

- Privacy policy: https://canine.sh/privacy
- Terms of service: https://canine.sh/terms
- GitHub: https://github.com/CanineHQ/canine
- Docs: https://docs.canine.sh/
- Discord: https://discord.gg/68YthskqEz
- Product Hunt: https://www.producthunt.com/products/canine
- Portainer partnership: https://www.portainer.io/solutions/canine

## Nearby in the atlas

- [Aptible](/products/aptible.md)
- [DigitalOcean App Platform](/products/digitalocean-app-platform.md)
- [Fly.io](/products/fly-io.md)
- [here.now](/products/here-now.md)
- [INK](/products/ink.md)
- [InstaCloud](/products/instacloud.md)

## Method

Facts come from the product's own public pages. Each claim carries its evidence: a quote and the page it came from. We count capabilities rather than grade products, and "Not assessed" means we have not checked, never that the product lacks it.
