← All decisions jacob@stephens.page
Decision Record

A guarded shell deploy over a hosted CI runner

ADR 0004 · Accepted ยท in production · ~298 words

Context

A single-server PHP application needs a way to go from "merged" to "live" safely. The industry-default answer is a hosted CI/CD runner. For one app on one server, that adds a moving part (runner availability, secrets shipped to a third party, network round-trips) to solve a problem that is mostly local: get the right commit onto this box, atomically, without two deploys colliding or a bad ref going out.

Decision

A server-side deploy script, invoked on the box, with explicit guardrails:

Consequences

When I'd revisit

Multiple servers, blue/green or canary needs, or a team where many people deploy - any of those tips the balance back toward a managed pipeline.

Narrative writeup: The Boring Deploy Script. One of a set of architecture decision records. Source markdown lives in the infrastructure-patterns repo, which is the canonical copy.