ADR 0003: Kamal multi-app droplet
- Status: Accepted
- Date: 2026-09-11 (documents the move off App Platform, August 2026)
Context
DigitalOcean App Platform priced each app separately and hid the machine. The workload (website, portal, later five demo shops) is many small apps with low traffic, ideal for one shared host, and full machine access simplifies debugging, cron and accessories.
Decision
One DigitalOcean droplet (keferboeck-ltd, 161.35.42.199) runs every app as Docker
containers deployed by Kamal 2, fronted by a single kamal-proxy terminating TLS.
Each app keeps its own repo, image, env and Postgres accessory.
Consequences
Fixed, predictable hosting cost regardless of app count; one place to monitor. The droplet is a single point of failure, which the disaster recovery runbook addresses; a second droplet split (by brand) is the designated escape hatch when load demands it.