# Brume vs Kamal

> Kamal is a proven deploy CLI that leaves only a small proxy on your servers. Brume, an alpha, adds a panel and deploys on git push, with no open ports.

Alpha 0.1 · in progress. This is https://brume.dev/vs/kamal in Markdown, for agents and terminals.

|  | Brume | Kamal |
| --- | --- | --- |
| Admin panel | On your tailnet only | [None: a CLI over SSH](https://kamal-deploy.org/docs/commands/view-all-commands/) |
| Docker access | Only a separate agent, which listens on nothing | [Docker commands over SSH, as root by default](https://kamal-deploy.org/docs/configuration/ssh/) |
| Inbound ports | None, through Cloudflare Tunnel | [SSH, plus 80 and 443 for kamal-proxy](https://kamal-deploy.org/docs/configuration/proxy/) |
| Install | One command on Debian or Ubuntu | [A Ruby gem locally. Servers need only SSH](https://kamal-deploy.org/docs/installation/) |
| AI agents | A CLI and a local MCP server. Irreversible actions wait for your approval | [The CLI itself. No official MCP server](https://kamal-deploy.org/docs/commands/view-all-commands/) |
| Backups | Encrypted dumps on your S3, full restore of the server | [None built in. Databases run as accessories](https://kamal-deploy.org/docs/configuration/accessories/) |
| Several servers | One server in alpha 0.1, more planned | [Many, with roles. You add the load balancer](https://kamal-deploy.org/docs/installation/) |
| License | Free and open source (FSL-1.1-ALv2, Apache 2.0 after two years) | [Free, MIT](https://github.com/basecamp/kamal) |
| Maturity | Alpha 0.1, in progress | [Deploys HEY and other 37signals apps](https://kamal-deploy.org/) |

Facts checked on November 1, 2026 in each project's official docs. "If the panel is hacked" is our reading of them. Brume is shown in its recommended modes: Cloudflare Tunnel and Tailscale.

## Where Brume is different

- A panel on your tailnet, and a deploy on every git push.
- No inbound ports, SSH included: public traffic comes through Cloudflare Tunnel.
- Encrypted database dumps on your S3, and a full restore of the server.

## Where Kamal is better today

- Proven: 37signals deploys HEY with it, and it has been public since 2023.
- Deploys to many servers from one file, with roles like web and workers.
- No control plane to attack: only kamal-proxy runs, without the Docker socket.

**Pick Kamal if…** You deploy to several servers from a terminal or CI, and want no panel at all.

**Pick Brume if…** You run one server and want a panel, deploys on git push and no open ports.

## Install

```sh
curl -sSL https://brume.dev/install.sh | bash
```

Needs a fresh Debian or Ubuntu VPS and an S3-compatible bucket. Cloudflare and Tailscale recommended.

## Other comparisons

- [Brume vs Coolify](https://brume.dev/vs/coolify)
- [Brume vs Dokploy](https://brume.dev/vs/dokploy)
- [Brume vs CapRover](https://brume.dev/vs/caprover)
- [Brume vs Portainer](https://brume.dev/vs/portainer)
- [Brume vs Dokku](https://brume.dev/vs/dokku)
- [Brume vs Easypanel](https://brume.dev/vs/easypanel)

---

## More from brume.dev

Every page in Markdown. The whole site in one file: https://brume.dev/llms-full.txt. The index: https://brume.dev/llms.txt

- [Home](https://brume.dev/index.md)
- [Architecture](https://brume.dev/architecture/index.md)
- [Roadmap](https://brume.dev/roadmap/index.md)
- [Compare](https://brume.dev/vs/index.md)
- Brume vs [Coolify](https://brume.dev/vs/coolify/index.md), [Dokploy](https://brume.dev/vs/dokploy/index.md), [CapRover](https://brume.dev/vs/caprover/index.md), [Portainer](https://brume.dev/vs/portainer/index.md), [Kamal](https://brume.dev/vs/kamal/index.md), [Dokku](https://brume.dev/vs/dokku/index.md), [Easypanel](https://brume.dev/vs/easypanel/index.md), [Railway](https://brume.dev/vs/railway/index.md), [Render](https://brume.dev/vs/render/index.md), [Fly.io](https://brume.dev/vs/fly/index.md), [Vercel](https://brume.dev/vs/vercel/index.md), [Heroku](https://brume.dev/vs/heroku/index.md)
