[mproxy](https://github.com/basecamp/parachute) is a custom minimal proxy designed specifically for Kamal. It has two big 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 an instance of mproxy without conflicting config.
21 lines
321 B
YAML
21 lines
321 B
YAML
service: app
|
|
image: dhh/app
|
|
servers:
|
|
web_chicago:
|
|
proxy: enabled
|
|
hosts:
|
|
- 1.1.1.1
|
|
- 1.1.1.2
|
|
web_tokyo:
|
|
proxy: enabled
|
|
hosts:
|
|
- 1.1.1.3
|
|
- 1.1.1.4
|
|
env:
|
|
REDIS_URL: redis://x/y
|
|
registry:
|
|
server: registry.digitalocean.com
|
|
username: user
|
|
password: pw
|
|
primary_role: web_tokyo
|