Commit Graph

2 Commits

Author SHA1 Message Date
Donal McBreen
015c5a6f90 Add kamal proxy update
For easy updates from Traefik to kamal-proxy, add `kamal proxy update`.

This stops and removes Traefik and kamal-proxy containers (just in case
it is run after an update). Then it starts kamal-proxy and calls
`kamal-proxy deploy` to route to any app containers that are already
running.

It can be run with a rolling option and calls the `pre-proxy-reboot` and
`post-proxy-reboot` hooks for each host.
2024-05-28 15:31:56 +01:00
Donal McBreen
6568cef868 Replace Traefik with kamal-proxy
[kamal-proxy](https://github.com/basecamp/kamal-proxy) is a custom
minimal proxy designed specifically for Kamal.

It has some advantages over Traefik:
1. Imperative deployments - we tell it to switch from container A to
   container B, and it waits for container B to start then switches. No
   need to poll for health checks ourselves or mess around with forcing
   health checks to fail.
2. Support for multiple apps - as much as possible, configuration is
   supplied at runtime by the deploy command, allowing us to have
   multiple apps share a proxy without conflicting config.
3. First class support for Kamal operations - rather than trying to
   work out how to make Traefik do what we want, we can build features
   directly into the proxy, making configuration simpler and avoiding
   obscure errors
2024-05-28 15:31:56 +01:00