Kamal Proxy

Kamal Proxy is a minimal HTTP reverse proxy written in Go that powers the zero-downtime deploy switchover behind Kamal. It exposes a small `kamal-proxy` CLI with `run`, `deploy`, and `remove` commands; the Kamal CLI talks to it over SSH to register new container instances (`hostname:port`), runs health checks (default `GET /up` once per second returning `200`), drains traffic from old instances, and atomically switches new traffic to the healthy instance. The proxy supports host-based routing (multiple apps on one server), path-based routing with optional prefix stripping, custom health-check paths/ports/timeouts, automatic TLS via Let's Encrypt, and custom TLS certificate/key files (useful for Cloudflare origin certs or private CAs). It can also be run standalone outside of Kamal.

Kamal Proxy is one of 2 APIs that Kamal publishes on the APIs.io network.

Tagged areas include Proxy, HTTP, Load Balancing, Zero Downtime, and TLS. The published artifact set on APIs.io includes API documentation and a GitHub repository.

API entry from apis.yml

apis.yml Raw ↑
aid: kamal-deploy:kamal-proxy
name: Kamal Proxy
description: Kamal Proxy is a minimal HTTP reverse proxy written in Go that powers the zero-downtime deploy
  switchover behind Kamal. It exposes a small `kamal-proxy` CLI with `run`, `deploy`, and `remove` commands;
  the Kamal CLI talks to it over SSH to register new container instances (`hostname:port`), runs health
  checks (default `GET /up` once per second returning `200`), drains traffic from old instances, and atomically
  switches new traffic to the healthy instance. The proxy supports host-based routing (multiple apps on
  one server), path-based routing with optional prefix stripping, custom health-check paths/ports/timeouts,
  automatic TLS via Let's Encrypt, and custom TLS certificate/key files (useful for Cloudflare origin
  certs or private CAs). It can also be run standalone outside of Kamal.
humanURL: https://github.com/basecamp/kamal-proxy
tags:
- Proxy
- HTTP
- Load Balancing
- Zero Downtime
- TLS
- Go
properties:
- type: Documentation
  url: https://github.com/basecamp/kamal-proxy/blob/main/README.md
- type: Source
  url: https://github.com/basecamp/kamal-proxy
- type: GitHubRepository
  url: https://github.com/basecamp/kamal-proxy
- type: License
  url: https://github.com/basecamp/kamal-proxy/blob/main/MIT-LICENSE
- type: Dockerfile
  url: https://github.com/basecamp/kamal-proxy/blob/main/Dockerfile